2015-06-08 44 views
0

在從SVN轉移到git的過程中,我們正在評估Stash中的SVN Mirror Stash pluginSubGit)。如何在使用SubGit的同步SVN回購中找到Git修訂哈希?

我們的一個要求是git修訂哈希可以在SVN回購中使用,無論是在自定義revprop中,還是通過JSON格式的日誌消息。

本質上我試圖做與this question中描述的相反。

我控制着git repo和svn repo,我很樂意編寫一個自定義鉤子/腳本,但我一直無法找到合適的位置來插入這個鉤子,無論是在子集或存儲文件。我對插入這種功能的最佳做法也很感興趣。

回答

0

只是@Brilliantnut[email protected]之間討論這個問題後的簡短摘要:

我們的團隊已經決定支持特殊類型的保持相應的Git提交的元數據信息的修改屬性:作者,提交者,時間戳,提交ID,等

我會盡快更新這個答案,只要我們發佈新的構建與實施此功能。

更新:

爲了設置在Subversion版本庫中Git的特定版本屬性,調整SubGit配置文件如下:

$ edit GIT_REPO/subgit/config 

[svn] 
    ... 
    revisionProperties = committer, author, date, log, commit 
    ... 

,然後才能激活此配置更新運行subgit install

$ subgit install GIT_REPO 

之後,SubGit爲每個修訂版設置了以下屬性,它將從Git轉換爲SVN:

subgit:committer="Git Committer <[email protected]>" 
subgit:author="Git Author <[email protected]>" 
subgit:date="2015-06-10 16:46:01 +0400" 
subgit:log="fix foo" 
subgit:commit=9039c430e12d25c3ef250c8e49c4a57877c36343 

您還可以選擇哪些屬性,通過調整配置選項設置:

[svn] 
    ... 
    revisionProperties = date, log, commit 
    ... 

有此功能的下列限制:

  1. subgit:*版本屬性不設置SVN用戶提交的修訂版本,而不是通過SubGit從Git提交進行轉換;

  2. 如果在已經與SVN存儲庫同步的提交中添加/刪除新的Git分支或標記,SubGit將創建一個新的SVN修訂,其中沒有子集:* properties set。