我有一些文件是更新的一部分,它们在准备好之前被错误地提交到主干。有没有办法'撤消'此结帐并将存储库推回一个版本,同时仍将更改的文件保留在我的结帐中?
我在Windows XP上使用tortiseSVN ver 1.6.5,如果这有任何区别的话。
示例:我更新了一个文件,它现在是修订版659,此文件的先前版本是600.我想在我的结帐时保留659版本,但是再次将当前版本600作为最新版本(即版本) 660)。
我尝试制作当前版本的副本,将常规版本回滚到600,然后尝试将其提交回来,但它告诉我没有更改提交。
答案 0 :(得分:3)
我通常会将要保留的文件复制到临时位置,执行回滚,然后将保留的文件复制回来...虽然,据我所知,我只是采取简单的方法并且有更好的方法在那里。
答案 1 :(得分:2)
您需要reverse merge,而不是旧版本的更新。
假设您刚刚提交的修订版(并希望回滚)为42。
# rollback
svn merge -c -42
svn commit
# now r43 is good but we want r42's version of foo.c in our working copy
svn merge -c -43 foo.c
答案 2 :(得分:-1)
理想情况下,您将使用“更新到修订版”,它会将您的工作副本还原为指定的修订版号,之后您可以提交回来。为了简单起见,我会在获取当前工作目录的副本之后执行此操作,然后在更新后将副本移回。