Svn

在 SVN 中移動文件夾

  • April 18, 2017

這是在 Win2k3sp2 上,使用 TortoiseSVN 1.6.5 和 SlikSVN 1.6.3。

我在 repo 中有一個文件夾,稱之為 /a/b,我想在同一個 repo 中成為 /a/c/d。我試過只是移動文件夾並重命名它,然後送出,顯然它會感到困惑,因為 .svn 文件夾認為它仍然在舊名稱下,如果它確實有效,這是一個兩次送出的東西 /a/ b 被刪除並且 /a/c/d 是全新的,這不好,因為這樣我就會失去附加到每個文件的歷史記錄。

我開始四處尋找,發現“重新定位”,它帶有一個巨大的警告並說服我不要使用它。然後是“切換”,雖然我認為“重新定位”是描述我想做的更直覺的方式,但似乎是合適的選擇。所以我這樣做了,這花了很長時間,即使 /a/b 中只有幾個文件(可能有 8 個文件夾,每個文件夾包含一個或兩個文件),現在:

  1. /a/b 還在
  2. /a/b 中一半的文件夾不見了
  3. /a/b 中的其余文件夾在我嘗試查看它們時給我一個錯誤:“/a/b/e 不可訪問。訪問被拒絕。”
  4. /a/c/b(不是我所說的 /a/c/d!)已創建但保持為空
  5. 我嘗試了更新,現在一些文件夾又回到了 /a/b,但不是全部

那麼我的問題分為兩部分:

  1. 我該如何清理這個?
  2. 如我所述,移動文件夾的正確方法是什麼?

您的問題是使用了錯誤的命令;“切換”完全符合您的要求 - 它更改了您的工作副本“指向”的儲存庫位置,而不更改儲存庫。(切換然後送出會產生一些結果,但是以一種非常糟糕的方式,這不是你的意思。你是對的;聽起來很誘人的“重新定位”是“切換”的一個特例,應該避免同樣的原因。)

“更新”命令隨後更新了工作副本以匹配“新”位置的儲存庫中目前的內容 - 沒有!

Subversion 還沒有真正的移動/重命名。顛覆安全的方法是複制然後刪除。TortoiseSVN 包括一個方便的“移動”選項,它可以將複製和刪除作為一個操作。

做你想做的最簡單的方法:

  1. 在 TortoiseSVN 中打開 repo-browser。

2.右鍵點擊並將文件夾從舊位置拖到新位置。

  1. 從上下文菜單中選擇“移動”。

這也適用於您的工作副本,並且是在 wc 中移動或重命名文件和文件夾而不會失去歷史記錄的安全 Tortoise/Subversion 方式。

引用自:https://serverfault.com/questions/77626