2011-05-11 88 views
1

我有一个具有trunk和分支的Subversion版本库。现在,当我尝试将树干合并到我的分支中时(无论是否使用TortoiseSVN或命令行svn),目录和包含的文件都被标记为删除。但是在合并日志中没有对该文件的传入删除。在Subversion中合并的奇怪删除

如果我现在运行svn status,它显示我像

D + path/to/directory 
D + path/to/directory/file 

编辑:作为阿尔瓦罗G.维卡里奥指出的那样,+表示“历史预定要提交” - 你会在意思我的情况?

现在我很害怕,说(因为我只是偶然发现了这个)我可能已经在过去类似的合并有数据丢失,没有注意到。任何人都可以给我一个关于这里可能发生的事情的暗示吗?

+0

重命名的概念根本不存在的颠覆。你必须复制文件并删除原文(尽管有一个'svn rename'子命令可以帮你完成这两件事)。 – 2011-05-11 14:29:38

+0

是的,我知道这一点。但'svn info'通常不会指出那些通过相应的delete和add旁边的'+'检测到实际重命名操作的情况? – David 2011-05-11 14:31:44

+0

不,'+'的意思是[历史记录已提交](http://svnbook.red-bean.com/nightly/en/svn.ref.svn.c.status.html) – 2011-05-11 14:33:50

回答

1

如果不确定的话,我建议你重新开始,然后从TortoiseSVN做的一切。假设你没有犯合并的是,找到你的分支工作副本和:

  1. 右键点击你的工作副本根和还原
  2. 右键点击你的工作副本根和检查修改。如果有的话删除未版本控制的项目。
  3. 右键单击...和合并。选择“合并一系列修订”和下一步。选择“从URL合并”的主干。点击显示日志并突出显示您要合并的所有修订。底部面板将显示更改的项目。当开心时,请点击确定并继续合并。
  4. 右键单击...并检查修改检查什么将被提交。请特别注意“从URL复制”列。 (右键单击列标题显示/隐藏列。)
+0

谢谢你的回答。我还没有合并,我已经检查了我的分支的一个全新的工作副本。我还没有尝试的是明确选择合并修订。我也没有尝试“从URL复制”列。我会尝试一下。不过,除了“不干净的工作副本”之外,我还会有其他想法吗? – David 2011-05-11 16:26:37