我正在使用svn
代码。我想问一下,如果有办法用svn
制作检查点吗?
我在本地驱动器上签出了代码。在完成第一部分更改后,我发现一切正常。第二部分更改后的代码被破坏了。我希望在第一部分更改之后和之后进行更改之前回到原点。所以现在我制作补丁文件(带svn diff
)并恢复所有代码然后修补它。我想知道是否有svn
命令在第一部分更改后创建检查点,然后使用单svn
命令返回到此检查点。我不希望在第一部分更改后提交更改。
答案 0 :(得分:1)
我认为正确的术语是svn save points。有这种持续的功能设计,但据我所知它还没有发货。
无论如何,我也在寻找这个功能,因为我的公司使用svn,我通过配置git over svn解决了这个问题。使用这种架构,你有一个本地的git存储库,"会谈"到远程svn repo,因此你可以受益于git(廉价分支,藏匿等)的优点,同时仍然在实践中使用svn。
这个"检查站"你想实现可以通过git的存储来完成,或者通过创建一个新的分支(在git中非常简单和通用的实践)并使用提交作为你的检查点(当然这些提交将不会在svn中看到 - 这是如果我做对了你想要的东西)
答案 1 :(得分:1)
使用SVN执行此操作的传统方法是:
Create a new SVN branch您将用作自己的沙箱(使用' svn copy')。
将您的本地结账切换到刚刚创建的SVN分支(使用' svn开关'后跟新创建的分支的URL)
开始进行更改。每当您想要创建一个“检查点”时,都要提交给#v; svn commit'。此提交仅将更改提交到您的私有分支,因此没有其他人会看到它们(除非他们故意去寻找您的分支)。
如果在进行一些更改之后,您认为它们都是错误的,并且您希望恢复到最近最常提交的检查点,即" svn - recursive revert。"在您的SVN结帐文件夹的顶层将恢复您的SVN结帐回到您最近提交的状态。
如果你想进一步revert committed changes,你可以通过" svn merge -rXXXX:YYYY"其中XXXX和YYYY是您要还原的更改的SVN修订版号,YYYY是比该数字少的第一个。
当您完成更改并对结果感到满意,并且您已将所有本地更改提交给分支机构时,您可能希望merge all of your branch's changes back into the trunk这样其他人就可以看到/使用它们。
之后,如果您愿意,可以继续在主干中工作,或者如果您愿意,可以创建另一个私人分支,并再次重复此过程。