3

有没有人有过在乌龟中移动文件并成功提交的经验,只是后来提交了不同的更改并被告知树冲突,其中:

  1. 原始位置的文件已被删除,但在 tortoise 中被标记为丢失
  2. 新位置的文件在那里,但标记为已添加。

(我使用乌龟SVN,我们有客户端和服务器> 1.60)

没有其他人更改目录或文件(根据 svn log)。

  1. 为什么会这样?
  2. 有没有办法避免它发生?
  3. 如果确实发生了,有没有比删除整个文件夹并再次更新更优雅的方法来解决问题?
4

3 回答 3

3
  1. 听起来您可能使用 Windows 资源管理器的“移动”命令而不是 Tortoise 的“移动”命令移动了文件。前者只是在文件系统中移动文件而不更新颠覆树(从版本控制中删除旧文件并将旧文件的历史链接到新文件)。

  2. 始终使用 TortoiseSVN 的“移动”命令,或者如果您想在没有历史记录的情况下移动文件,则使用 Windows 资源管理器复制文件,使用 Tortoise 添加新版本,然后使用 Tortoise 删除旧版本。

  3. 您可以右键单击旧文件的父文件夹,选择“检查修改”,然后从版本控制中删除标记为缺失的文件。

于 2010-06-01T15:38:28.773 回答
1

听起来您提交了文件,但没有提交它移入/移出的目录。您还需要提交目录。

于 2010-06-01T15:52:50.737 回答
0

通过右击文件夹,选择“重命名”并使用“newpath\to\folder”作为参数,我陷入了树冲突。经过多轮失败的清理命令和其他一些事情后,我终于通过以下方式恢复了理智:

  1. 在另一个文件夹中打开新的干净结帐
  2. svn 从干净的结帐中删除并提交损坏的 'newpath\to\folder'
  3. 选择 'oldpath\folder' 右击拖动并 svn 移动到新位置
  4. 立即提交更改,中间没有其他操作
  5. 转到损坏的签入 'oldpath\folder' 并手动将丢弃或留下的文件复制到 'newpath\to\folder'
  6. 添加手动复制的文件,就好像它们是新的一样。

手动更新文件的无缝历史链已损坏,但至少我现在可以继续工作。

于 2010-11-25T20:35:14.170 回答