簡體   English   中英

SVN 重定位 - 將所有外部變量更改為“相對於存儲庫根目錄的 url”

[英]SVN Relocate - Change all externals to “relative url to repository root”

我們最近更改了 svn 項目的服務器名稱(http 到 https) 不幸的是,我所有使用絕對 url 的外部設備現在都無法正常工作。 我想使用相對 url 將所有這些更改為存儲庫根目錄“^/...”。

  • 文件夾 1
    • 文件夾 1.1
      • 外部 1
      • 文件夾 1.1.1
        • 外部 2
        • 外部 3
  • 文件夾 2
    • 文件夾 2.1
      • 外部 4
      • 文件夾 2.1.1
        • 外部 5
        • 外部 6

有沒有一種簡單的方法可以同時更改它們?

我正在使用 SVN 1.8.11

預先感謝您的幫助

我本來可以評論的,但不幸的是我還沒有評論的權限。 但是您使用的是 Subversion 客戶端嗎?

TortoiseSVN 是一個很好的 svn 客戶端,它有一個易於使用的 shell 菜單,你所要做的就是轉到你的檢出目錄: - 右鍵單擊​​ > TortoiseSVN > 屬性 > 新建... > 外部

否則,是的,您必須將 propset 與文件一起使用。 像這樣的東西:

$ svn propset svn:externals BaseDirectory
Folder 1                       https://url/to/folder1
Folder 1/external 1            https://url/to/external1

或者您可能必須使用 propedit,如果它們已經存在的話。 查看更多信息:

操作屬性

外部定義

不過,擁有外部對象應該不是問題,只要確保在進行更新時目錄不存在即可。 如果您嘗試添加外部對象並將它們指向已經存在的目錄,有時顛覆會搞砸。 您可能會看到類似的錯誤

Cannot obtain lock on non directory

或類似的東西。 希望這會有所幫助!

由於我現在遇到了同樣的問題並且沒有找到解決方案,因此我將其留在這里以供將來參考。

我最終檢查了整個存儲庫。 然后使用svn propget svn:externals -R > externals.txt導出所有svn propget svn:externals -R > externals.txt 在這個文件中,你可以用svn propset svn:externals "$2" $1替換^([^\\s]+) - (.*?)(?=\\r\\n\\r\\n)來獲取命令列表更改存儲庫中的所有外部。 然后搜索/替換您的網址並執行命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM