2010-05-05 43 views
4

如何查詢列出用戶對Subversion存儲庫的所有提交?如何查詢列出用戶對Subversion存儲庫的所有提交?

我想找到我曾經對Subversion版本庫所做的所有提交,而不僅僅是提交當前的快照。更重要的是,我想通過提交時使用的SVN註釋來組織文件列表。

我想也許Python或shell腳本,將解析的

svn log | grep username 

輸出提取修訂然後通過管道輸出到:

svn log -r [revision numbers go here] 

也許一些腳本大師可以幫助我out ..

回答

2

我想下面是一個很好的起點。

svn log -v --xml --with-all-revprops URL_OF_REPO 

它將輸出如下所示的XML日誌中的條目(在測試存儲庫上生成)。

D:\temp\co-test-repo>svn log -v --xml --with-all-revprops --username AWXGX file:///d:/svn/repos/test-repo 
<?xml version="1.0"?> 
<log> 
    <logentry 
     revision="2"> 
     <author>AWXGX</author> 
     <date>2010-05-05T19:20:34.062500Z</date> 
     <paths> 
      <path 
       kind="file" 
       action="A">/src/main/java/org/pers/OtherClass.java</path> 
     </paths> 
     <msg>add another class</msg> 
    </logentry> 
    <logentry 
     revision="1"> 
     <author>AWXGX</author> 
     <date>2010-05-05T19:20:00.578125Z</date> 
     <paths> 
      <path 
       kind="dir" 
       action="A">/src/main/java/org</path> 
      <path 
       kind="file" 
       action="A">/src/main/java/org/pers/SomeClass.java</path> 
      <path 
       kind="dir" 
       action="A">/src</path> 
      <path 
       kind="file" 
       action="A">/pom.xml</path> 
      <path 
       kind="dir" 
       action="A">/src/main</path> 
      <path 
       kind="dir" 
       action="A">/src/main/java</path> 
      <path 
       kind="dir" 
       action="A">/src/main/java/org/pers</path> 
     </paths> 
     <msg>creation of project files</msg> 
    </logentry> 
</log> 

然後做一個XSLT轉換爲你想要的輸出。我希望這有幫助。

編輯:我刪除了僅用於認證puposes的--username,不過仍然可以使用命令(我想它真正的存儲庫)。然後使用XSLT完成對用戶的過濾。

+0

--username開關如何工作,我的資源庫返回所有用戶提交的所有提交 – VDev 2010-05-05 20:24:39

+0

請參閱我的編輯,--username僅用於驗證用戶身份 – 2010-05-06 06:43:42

0

您可以使用SVN loggrep作爲您的名字。

+0

他需要做的不僅僅是簡單的'svn log | grep用戶名「,但如果他想要文件列表和提交修訂的評論,並希望他們重新組織。 – prodigitalson 2010-05-05 18:44:50

+0

Subversion的contrib目錄中有一個工具可以執行此操作。 – 2010-05-05 19:37:52

相關問題