繁体   English   中英

学习SVN - 简单的初学者问题

[英]Learning SVN - Simple beginner questions

刚开始使用SVN。 这是我在阅读了几篇文章,教程和玩了几个小时之后的一组非常基本的问题。

  1. 当我创建一个回购时,它应该包含我的所有项目还是只有一个? 在一些项目上运行导入后,我添加的每个新项目的修订计数都会增加,这似乎很奇怪。

  2. 如果我自己工作,标签和分支仍然是必要的和良好的做法?

  3. 你怎么知道何时提交一个项目? 特别是从头开始写它?

  4. 在夜晚结束时,你总是承诺你的工作吗? 或者你把它留下来检查?

  5. 您是否始终保留项目的导出副本? 如果SVN DB borks怎么办? 你能从borking恢复吗? 如果它确实是bork并且我只有一个签出的副本,我是否必须自己删除所有的.svn目录? 这样做会等同于导出的副本吗? 您是否将导出的标签存档?

  6. 我是否需要直接访问存储库目录? 隐藏这个目录会更好吗? (使用svn)

  7. 是否有更简单的方法来进行结账并导入然后输入整个文件路径(file:/// Applications / MAMP / SVN /)? 我可以设置一次我将永远使用的回购吗?

编辑感谢清除所有这些问题。 还有关于gui的建议。 我通过textmate建立起来,令人难以置信的令人难以置信。 仍然必须在CL上进行初始导入和结帐但是......

  1. 这取决于你。 有些人认为许多项目的回购“足够大”,有些人认为共享编号很烦人并使其成为1:1的映射。 你决定。
  2. 当然! 每次发布时,都要对其进行标记,以便您可以轻松返回。 每当你想在大的东西上“隔离”时,就把它分开。
  3. 尽可能经常地提交,将其视为备份工作。
  4. 我宁愿在停止当天或“会议”或其他任何工作之前做出承诺,这只会让我觉得我已经完成了某些事情,这对于激励是有益的。
  5. 我将SVN备份到保存在银行金库中的硬盘上。 :)不像我应该经常或经常,但我正在努力改善这个例程。
  6. 在设置之后我不认为我曾经直接访问过它。
  7. 不确定那个,我使用本地服务器点缀域名很短(svn.unwind.se)。

这是我对此的看法:

当我创建一个回购时,它应该包含我的所有项目还是只有一个? 在一些项目上运行导入后,我添加的每个新项目的修订计数都会增加,这似乎很奇怪。

这完全取决于您的口味:在单个仓库中拥有多个项目会带来好处(例如,将代码从一个项目复制到另一个项目),但如果您想让其他人只访问一个项目,那么拥有一个大型存储库可以让事情变得有点棘手。

关于修订号:不要担心。 这些数字仅用于管理,因此您可以轻松合并代码,返回特定版本等。

如果我自己工作,标签和分支仍然是必要的和良好的做法?

绝对! 特别是如果您想将代码发布到其他人或其他地方(例如在服务器上)。 您需要知道自己发布的版本(标记)。 并且您可能希望在旧版本中修复某些内容,而不会受到您在进一步开发(分支)期间所做的更改的困扰。

此外:当你不确定是否要继续沿着这条路走时,你可能想尝试一些事情:创建一个分支,进行实验并将其合并回主干或抛弃整个分支。

你怎么知道何时提交一个项目? 特别是从头开始写它?

我喜欢做小提交。 创建了样板项目? 承诺吧。 添加功能X? 承诺吧。 重构你的FooProcessor代码? 承诺吧。

通过采取这些小步骤,我发现更容易回溯我所做的事情。 如果我修复了某个bug,并且在一个月内我遇到了类似的问题,我可以很容易地确定修复的哪些部分以及什么不是。 (即:如果它在另一个提交中,它不是修复的一部分。:))我唯一的规则,这在团队中工作时尤其重要:不要提交破坏的代码。 它可能是未完成的,但它不应该伤害任何碰巧检查代码的人。

在夜晚结束时,你总是承诺你的工作吗? 或者你把它留下来检查?

我试着在一天结束时提交(所以当我的计算机出现问题时,我有一个备份,或者如果我生病了,我的同事可以继续我离开的地方)。 但只有我达到了可以安全承诺的程度。

您是否始终保留项目的导出副本? 如果SVN DB borks怎么办? 你能从borking恢复吗? ...

我没有整个存储库的结帐,我有存储库的备份。 我从来没有遇到过SVN存储库的问题。

...如果它确实是bork并且我只有一个签出的副本,我是否必须自己删除所有的.svn目录? 这样做会等同于导出的副本吗? ...

取决于你想要实现的目标。 但是删除.svn文件实际上与svn导出相同。

...您是否将导出的标签存档

不,不是真的。 除非您想要在生产服务器上签发发布的“归档”。

我是否需要直接访问存储库目录? 隐藏这个目录会更好吗? (使用svn)

在* nix系统上, .svn目录已经被隐藏(这就是为什么它们以点开头)。 你不应该想在这些目录中乱七八糟。

是否有更简单的方法来进行结账并导入然后输入整个文件路径(file:/// Applications / MAMP / SVN /)? 我可以设置一次我将永远使用的回购吗?

正如其他人已经提到的那样:看看Subversion的GUI。 我个人喜欢TortoiseSVN

  1. 您可以为每个项目创建一个仓库,或者为许多链接项目使用单个仓库; 这真的取决于你。 考虑到存储库的修订号是全局的,因此对项目的提交将增加整个存储库的修订计数。
  2. 如果您需要分支您的项目,即使您单独处理它们,它们也是很好的实践。 如果您只有主分支,则不需要它们。
  3. 我们通常在功能完成,重构完成等时提交; 例如。 我们不会在编辑过程中提交。
  4. 如果您自己工作,您可以经常提交备份工作。 但是如果你在团队中工作,你应该坚持提交“工作代码”,否则你的同事可能会在工作副本中获得一些非编译代码。
  5. 我们的存储库每晚都会与服务器上的其他内容一起备份。
  6. 用户无需访问repos目录。 备份管理员等应该可以访问它。
  7. svn有许多不同的GUI。 看看这个: Subversion客户端的比较
  1. 这是个人品味的问题。 我更喜欢单一的repo,它更容易维护用户和权限以及备份
  2. 是的,它们是两个功能,即使在单人场景中也是如此。
  3. 每次提交都应该有意义。 因此,在完成功能实现,修复错误或执行某些可以在日志消息中进行有意义描述的工作时提交。 版本控制工具不是备份工具。
  4. 请参阅前一点,您不应仅仅因为您停止工作并在存储库中留下一些损坏的代码或半完成的任务而提交。
  5. 备份总是很重要,svn为您提供了不同的方法,请参阅官方书籍: http//svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.backup
  6. 通常,您在设置后无需访问它。
  7. 尝试使用像TortoiseSvn这样的Svn客户端。

当我创建一个回购时,它应该包含我的所有项目还是只有一个? 在一些项目上运行导入后,我添加的每个新项目的修订计数都会增加,这似乎很奇怪。

您喜欢它:每次签到时修订计数都会增加,与其所在的项目无关

如果我自己工作,标签和分支仍然是必要的和良好的做法?

标记版本(因此您可以根据报告者正在使用的任何版本来验证错误),分支处理更大的事情 - 如果它没有达到预期的效果,您可以随时返回主分支

你怎么知道何时提交一个项目? 特别是从头开始写它?

在我创建项目之后,我从一开始就提交。

在夜晚结束时,你总是承诺你的工作吗? 或者你把它留下来检查?

如果我有一些有效的东西(或者在任何情况下都没有破坏构建),我每天晚上都会做。 不要检查不编译的代码(即使你单独工作这是一个好主意)。 在开始完成另一项任务之前,每当我完成正在进行的任务时,我也会提交。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM