我修改了工作目录中的文件并进行了 svn 更新。更新执行没有冲突。
我希望能够将工作目录内容恢复到 svn 更新之前的状态。
原因是因为我维护了一个与共享 svn 存储库并行的本地 git 存储库。在进行 svn 更新之前,我忘记了 git commit 我的本地更改。现在我的工作目录包含本地更改与 svn 更新产生的更改混合在一起。如果我提交,所有更改都将显示为一个原子更改。我希望他们分开。如果我可以恢复更新并保留我在 svn 更新之前拥有的工作目录的内容,我可以这样做。
我修改了工作目录中的文件并进行了 svn 更新。更新执行没有冲突。
我希望能够将工作目录内容恢复到 svn 更新之前的状态。
原因是因为我维护了一个与共享 svn 存储库并行的本地 git 存储库。在进行 svn 更新之前,我忘记了 git commit 我的本地更改。现在我的工作目录包含本地更改与 svn 更新产生的更改混合在一起。如果我提交,所有更改都将显示为一个原子更改。我希望他们分开。如果我可以恢复更新并保留我在 svn 更新之前拥有的工作目录的内容,我可以这样做。
我一直在问这个问题,它实际上并不包括对“如何撤消 svn 更新?”的简单回答。问题。
因此,为了他人的利益,在您只想回滚更新的可解决案例中:
首先检查日志:
svn log | less
957
这将为您提供您希望返回的修订号(例如)。然后:
svn up -r 957
这是不可能的。忘记更新前的状态。
您可以通过制作颠覆差异来分离更改,git apply
将其应用于索引,提交(您的更改),然后提交所有内容(来自拉取的更改)。
那是紧急解决方案。我建议您切换到git-svn
,它将为您处理此类事情。
执行“更新到版本”,因此您将本地文件更改为稳定版本,然后重新提交。这样,您将丢失所有本地更改。
这是为linux用户准备的。
假设修订如下。
标题 - 20 对标题的先前修订 - 18、17、15、14、10、9,8。
转到您的 src 目录。使用 svn merge -r 17:18 $url
$url 为您的 svn 基础。
如果在更新过程中发生任何冲突,您的回收站中将提供您的文件和修订文件的副本