当你用已经在服务器上重命名的无版本文件更新'本地目录时会发生什么?

时间:2013-09-26 14:26:33

标签: svn

我的项目目录是SVN,但有些文件是按用户而不是版本。在一台PC上我已经重命名并成功提交。但我担心更新其他PC将删除所有这些文件...它将删除$ old-dir-name而不是重命名并保留内容。

运行SVN 1.6。

1 个答案:

答案 0 :(得分:0)

svn update会将您的工作副本带到存储库所具有的状态,这意味着它将删除不再存储在存储库中的文件,并创建现在存储库中的新文件。但由于您重命名了文件,内容不会丢失,因此它位于重命名的文件中。历史也不会迷失。

此处运行您的方案:

重命名工作副本中的文件

Cmd-$> pwd
D:\Projects\C_C++\stackoverflow

Cmd-$> svn rename test_svn_rename_update\test_svn_rename_update.c \
         test_svn_rename_update\test_svn_rename_update_renamed.c
A         test_svn_rename_update\test_svn_rename_update_renamed.c
D         test_svn_rename_update\test_svn_rename_update.c

svn表示将删除旧文件并添加新文件

不提交工作副本

Cmd-$> svn ci -m "renamed"
Deleting       test_svn_rename_update\test_svn_rename_update.c
Adding         test_svn_rename_update\test_svn_rename_update_renamed.c

Committed revision 718.

svn删除存储库中的旧文件并将新文件添加到其中。更改将提交一定的修订。

现在更新您更新其他工作副本(您现在所处的步骤)

Cmd-$> pwd
D:\Projects\svn_test

Cmd-$> svn update so
Updating 'so':
D    so\test_svn_rename_update\test_svn_rename_update.c
A    so\test_svn_rename_update\test_svn_rename_update_renamed.c
Updated to revision 718.

svn说它已将工作副本更新为某个版本,它删除了一个文件并添加了另一个文件,在重命名的情况下它是同一个文件但现在有另一个名称。

你不应该担心丢失任何内容,你甚至可以从第二台电脑上删除工作副本(使用文件系统NOT svn delete !!!)并再次检查。这将产生同样的效果。

如果您仍然担心,只需将其他工作副本压缩并执行svn update,看看会发生什么!