刚开始使用SVN。在阅读了几篇文章,教程和玩了几个小时之后,我有一组非常基本的问题。
当我创建一个回购时,它应该包含我的所有项目还是只有一个?在一些项目上运行导入后,对于每个添加的新项目,我的修订计数都会增加,这似乎很奇怪。
如果我自己工作,标签和分支是否仍然是必要的和良好的做法?
您如何知道什么时候提交项目?特别是从头开始写的时候?
在夜晚结束时,你总是承诺工作吗?或者你把它留下来检查?
您是否始终保留项目的导出副本?如果SVN DB borks怎么办?你能从borking恢复吗?如果它确实是bork并且我只有一个签出的副本,我是否必须自己删除所有的.svn目录?这样做会等同于导出的副本吗?您是否将导出的标签归档到其他地方?
我是否需要直接访问存储库目录?隐藏这个目录会更好吗? (使用svn)
是否有更简单的方法来执行结帐并导入然后输入整个文件路径(file:/// Applications / MAMP / SVN /)?我可以设置一次我将永远使用的回购吗?
编辑感谢您清除所有这些问题。还有关于gui的建议。我通过textmate建立起来,令人难以置信的令人难以置信。仍然需要在CL上进行初始导入和结账...
答案 0 :(得分:4)
答案 1 :(得分:2)
以下是我对此的看法:
当我创建一个回购时,它应该是 举办我的所有项目或只举一个? 运行导入后似乎很奇怪 关于我修改的几个项目 每个新项目的数量都在增加 加入。
这完全取决于您的品味:在一个回购中有多个项目可以带来好处(例如,将代码从一个项目复制到另一个项目),但是想要让其他人只访问一个项目,拥有一个大型存储库可能会让事情变得更加棘手。
关于修订号:不要担心。这些数字仅用于管理,因此您可以轻松地合并代码,返回特定版本等。
如果我自己工作,标签和分支仍然是必要和好的 练?
绝对!特别是如果您想将代码发布到其他人或其他地方(例如在服务器上)。您需要知道自己发布的版本(标记)。并且您可能希望在旧版本中修复某些内容,而不会被您在进一步开发(分支)期间所做的更改所困扰。
此外:当你不确定是否要继续沿着这条路走时,你可能想尝试一些事情:创建一个分支,进行实验并将其合并回主干或抛弃整个分支。
您如何知道什么时候提交项目?特别是从头开始写的时候?
我喜欢做小提交。创建了样板项目?承诺吧。添加功能X?承诺吧。重构你的FooProcessor代码?承诺吧。
通过采取这些小步骤,我发现更容易回溯我所做的事情。如果我修复了某个bug,并且在一个月内我遇到了类似的问题,我可以很容易地确定修复的哪些部分以及什么不是。 (即:如果它在另一个提交中,它不是修复的一部分。:))我唯一的规则,这在团队中工作时尤其重要:不要提交破坏的代码。它可能是未完成的,但它不会伤害任何碰巧检查代码的人。
在夜晚结束时,你总是承诺你的工作吗?还是你把它留下来了?
我尝试在一天结束时提交(所以当我的计算机出现问题时,我有一个备份,或者如果我生病了,我的同事可以继续我离开的地方)。但只有我达到了可以安全承诺的程度。
您是否始终保留项目的导出副本?如果SVN DB borks怎么办?你能从borking恢复吗? ...
我没有整个存储库的结帐,我有存储库的备份。我从来没有遇到过SVN存储库的问题。
...如果它确实是bork并且我只有一个签出的副本,我是否必须自己删除所有的.svn目录?这样做会等同于导出的副本吗? ...
取决于你想要实现的目标。但是删除.svn
文件实际上与svn导出相同。
...您是否将导出的标签归档到其他地方?
不,不是真的。除非您想要在生产服务器上签发发布的“归档”。
我是否需要直接访问存储库目录?隐藏这个目录会更好吗? (使用svn)
在* nix系统上,.svn
目录已被隐藏(这就是为什么它们以点开头)。你不应该想在这些目录中乱七八糟。
是否有更简单的方法来执行结帐并导入然后输入整个文件路径(file:/// Applications / MAMP / SVN /)?我可以设置一个我将永远使用的回购吗?
正如其他人已经提到的那样:看看Subversion的GUI。我个人喜欢TortoiseSVN。
答案 2 :(得分:1)
答案 3 :(得分:1)
答案 4 :(得分:0)
当我创建一个回购时,它应该包含我的所有项目还是只有一个?在一些项目上运行导入后,对于每个添加的新项目,我的修订计数都会增加,这似乎很奇怪。
根据您的喜好:每次登记时修订计数都会增加,与其所在的项目无关
如果我自己工作,标签和分支仍然是必要的和良好的做法吗?
标记版本(因此您可以根据报告者正在使用的任何版本来验证错误),分支处理更大的事情 - 如果它没有达到预期的效果,您可以随时返回主要版本分支
您如何知道什么时候提交项目?特别是从头开始写的时候?
我在创建项目之后就开始提交。
在夜晚结束时,你总是承诺你的工作吗?或者你把它留下来检查?
如果我有一些有效的东西(或者在任何情况下都没有破坏构建),我每天晚上都会这样做。不要检查不编译的代码(即使你单独工作这是一个好主意)。在开始完成另一项任务之前,每当我完成正在进行的任务时,我也会提交。