2013-06-05 120 views
2

我使用git-svn在遠程SVN存儲庫上工作,我使用git-flow工作流進行本地開發。Git pre-svn-dcommit hook

不幸的是偶爾有兩次我做了svn dcommit而功能分支,而我只想dcommit主。

我想要做的是創建一個pre-svn-dcommit鉤子來檢查我是否在主分支上。不幸的是,git似乎並沒有出現這樣的鉤子。

我發現兩個潛在的方法/解決方案:

  1. https://github.com/padwan-ragavan/preSVNDcommitHook - 我不是太舒服更換的git - svn的二進制雖然。
  2. http://davidsouther.com/2012/04/git-svn-dcommit-hooks/ - 這另一方面看起來有點太複雜,我喜歡(和需要)。

任何建議如何實現這一目標?

+2

可能的重複[如何從本地分支中避免意外dcommit](http://stackoverflow.com/questions/9226528/how-can-i-avoid-an-accidental-dcommit-from-a- local-branch) –

+0

這個線程說這個功能被添加了..但是當我嘗試它的時候它似乎沒有運行我的提交前鉤子:http://git.661346.n2.nabble.com/PATCH-git- SVN鉤前方的混帳svn的 - dcommit-td6540838.html –

回答

1

您可以創建一個Git別名拋出當你試圖去提交在非主分支的錯誤:

svndcm = "!f(){ if [[ $(git branch --no-color | sed -n "s/\* \(.*\)/\1/p") == "master" ]]; then git svn dcommit; else echo "Error"; fi }; f" 

包括在你的~/.gitconfig文件的[alias]部分上面一行,然後用git svndcm要提交您的更改。根據自己的喜好修改別名和錯誤信息:)