存储库中的目录更改了名称,然后更改回来 - svn不再将工作副本目录识别为相同的位置

时间:2016-09-30 20:43:13

标签: svn

我在很多代码上合作,几天前,协作者更改了存储库中目录的名称。意识到这一点,我问这个人是否可以将名称更改回原来的名称,以避免使用svn进行复杂的解决(我的工作副本有几个尚未提交的更改,我想要保留)。协作者将目录名称更改回原来的状态,但现在,svn status -u调用告诉我,工作副本中的目录不再被识别为与存储库中的目录相同。它还警告> local dir edit, incoming dir delete upon update

以下是对所发生事件的简要描述:

最初:

WC: /main/path/script/...
Repo: /main/path/script/...

然后:

WC: /main/path/script/...
Repo: /main/path/python_scripts/...

最后:

WC: /main/path/script/...
Repo: /main/path/script/...

最后一个声称这两个地点不再相同。

有人可以向我解释如何在不将当前工作副本提交到存储库的情况下再次同步这两个路径吗?请注意,我不熟悉svn工作周期,因此非常感谢详细解释。

1 个答案:

答案 0 :(得分:0)

似乎您在首次重命名存储库中的脚本目录后发布了更新,然后将其重命名。现在您的目录仍处于未解决的冲突状态。 尝试解决它:

cd /main/path/script/
cp -pR . ../script.bak # !!!do not forget perform backup!!!

svn resolve
Tree conflict on '.'
   > local dir add, incoming dir add upon update
Select: (r) mark resolved, (p) postpone, (q) quit resolution, (h) help: r
Resolved conflicted state of '.'

现在您可以看到,您的本地目录已被替换。您可能只想提交此更改:

svn stat -qu --depth=empty
R  +             -   .

svn ci --depth=empty -m"renaming was resolved"
Replacing      .
svn: The depth of this commit is 'empty', but copies are always performed recursively in the repository.

Committed revision 6532.

之后所有文件都应保持不变。