簡體   English   中英

SVN 外部子文件夾更改未顯示在視圖日志中(烏龜 svn)

[英]SVN externals sub folder changes not showing in view log (tortoise svn)

SVN 外部允許您使 SVN 文件夾看起來好像它位於另一個位置。 一個很好的用途是在 SVN 中的所有項目之間共享一個公共文件夾。

我在 SVN 中有一個 /trunk/common 文件夾,我通過幾個不同的項目共享該文件夾。

例子:

  • 項目1:/trunk/project1/depends
  • 項目 2:/主干/項目 2/依賴
  • 項目 3:/主干/項目 3/依賴
  • 項目4:/trunk/project4/depends

這些依賴文件夾中的每一個都是空的,但有一個 svn:external 定義為指向我的 /trunk/common 文件夾。

問題是當我在任何項目中查看日志時:/trunk/projectX/ 它沒有顯示 svn:externals 的更改。 我使用烏龜 SVN 作為我的 SVN 客戶端。

有誰知道如何改變這種行為? 我希望 /trunk/projectX 的顯示日志也包括對任何已定義的 svn:externals 的任何更改。

這在當前版本的 Subversion 中是不可能的,除了在外部目錄的目標上顯式調用 svn 日志

您可以嘗試在Apache Subversion 網站上發出功能請求

根據我的個人經驗,只有在您更改了外部文件的同一提交中,您也只修改了“內部”文件夾中的一個文件,才會報告外部鏈接的日志。 這樣 SVN 可以使用正確的日志檢索,也可以從外部文件夾中檢索日志。

我認為使用鈎子應該可以實現一種機制,用於在每次提交的工作目錄中自動提交一個點文件,如果提交從外部鏈接開始也是如此。

再見

我認為,在 Subversion 1.7 之后(在 WC 的根目錄中引入了 single.svn 文件夾),它更干凈了:對於目錄類型的外部目錄,外部內部工作副本是 a) 獨立 b) 單獨存儲庫的嵌套工作副本

>dir /B /S /AD
z:\subversion-troubleshoot-b\.svn
...
z:\subversion-troubleshoot-b\trunk
z:\subversion-troubleshoot-b\tags
z:\subversion-troubleshoot-b\trunk\lib
z:\subversion-troubleshoot-b\trunk\lib\.svn
...
z:\subversion-troubleshoot-b\tags\1.0.0
z:\subversion-troubleshoot-b\tags\1.0.1
z:\subversion-troubleshoot-b\tags\1.0.1\lib
z:\subversion-troubleshoot-b\tags\1.0.1\lib\.svn
...

並且父 WC不包含有關嵌套 WC 的任何信息(WC 的目錄,從存儲庫的 / 創建,note.svn 目錄存在兩次,僅用於主線)

>svn ls -R
readme.textile
tags/
tags/1.0.0/
tags/1.0.0/core_mod.txt
tags/1.0.1/
tags/1.0.1/core_mod.txt
trunk/
trunk/core_mod.txt

當主干(和標簽分別)具有子目錄 lib 作為外部

帶有外部的回購瀏覽器

支持處理添加到更新和提交的外部,因為這種支持會產生獨立且不相關的連續命令 - 並且因為沒有這種支持,外部沒有意義,聚合的 svn 日志必須以某種方式組合(通過未知原理,順便說一句)

當您顯示本地版本化文件夾的日志時,它將顯示與此特定文件夾相關的更改。 外部只是指向存儲庫上不同文件夾的鏈接 您可以從依賴於該外部項目的文件夾中跟蹤外部引用的唯一內容是引用定義本身 那是因為引用是依賴文件夾的顛覆屬性。

假設您有以下 repo 層次結構:

repo
   myfirstproject
      trunk
   mysecondproject
      trunk
   mycommonlib
      trunk

並且mysecondproject\trunk文件夾具有以下svn:external屬性:

svn://mysrv/repo/mysharedlib@2451 sharedlib

在新文件夾secondproject中檢出mysecondproject\trunk將在您的文件系統上創建類似這樣的內容:

secondproject Folder (refers mysecondproject/trunk)
   sharedlib Folder (refers mycommonlib/trunk @ revision #2451)

secondproject文件夾調用 Tortoise 的“顯示日志”命令只會顯示secondproject文件的更改,最終會顯示文件夾的svn:external屬性上發生的更改。

要獲取外部項目的更改日志,您需要從內部文件夾sharedlib中調用“顯示日志”,這是有道理的。

暫無
暫無

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

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