检查svn

时间:2015-05-07 07:11:54

标签: svn

我正在使用svn代码。我想问一下,如果有办法用svn制作检查点吗?

我在本地驱动器上签出了代码。在完成第一部分更改后,我发现一切正常。第二部分更改后的代码被破坏了。我希望在第一部分更改之后和之后进行更改之前回到原点。所以现在我制作补丁文件(带svn diff)并恢复所有代码然后修补它。我想知道是否有svn命令在第一部分更改后创建检查点,然后使用单svn命令返回到此检查点。我不希望在第一部分更改后提交更改。

2 个答案:

答案 0 :(得分:1)

我认为正确的术语是svn save points。有这种持续的功能设计,但据我所知它还没有发货。

无论如何,我也在寻找这个功能,因为我的公司使用svn,我通过配置git over svn解决了这个问题。使用这种架构,你有一个本地的git存储库,"会谈"到远程svn repo,因此你可以受益于git(廉价分支,藏匿等)的优点,同时仍然在实践中使用svn。

这个"检查站"你想实现可以通过git的存储来完成,或者通过创建一个新的分支(在git中非常简单和通用的实践)并使用提交作为你的检查点(当然这些提交将不会在svn中看到 - 这是如果我做对了你想要的东西)

答案 1 :(得分:1)

使用SVN执行此操作的传统方法是:

  1. Create a new SVN branch您将用作自己的沙箱(使用' svn copy')。

  2. 将您的本地结账切换到刚刚创建的SVN分支(使用' svn开关'后跟新创建的分支的URL)

  3. 开始进行更改。每当您想要创建一个“检查点”时,都要提交给#v; svn commit'。此提交仅将更改提交到您的私有分支,因此没有其他人会看到它们(除非他们故意去寻找您的分支)。

  4. 如果在进行一些更改之后,您认为它们都是错误的,并且您希望恢复到最近最常提交的检查点,即" svn - recursive revert。"在您的SVN结帐文件夹的顶层将恢复您的SVN结帐回到您最近提交的状态。

  5. 如果你想进一步revert committed changes,你可以通过" svn merge -rXXXX:YYYY"其中XXXX和YYYY是您要还原的更改的SVN修订版号,YYYY是比该数字少的第一个。

  6. 当您完成更改并对结果感到满意,并且您已将所有本地更改提交给分支机构时,您可能希望merge all of your branch's changes back into the trunk这样其他人就可以看到/使用它们。

  7. 之后,如果您愿意,可以继续在主干中工作,或者如果您愿意,可以创建另一个私人分支,并再次重复此过程。