Luồng công việc chính xác cho việc hợp nhất các nhánh được theo dõi svn bằng git-svn là gì. Tôi đã đọc một chút về git-svn svn.pushmergeinfo then chốt cấu hình, và hãy cẩn thận là:Luồng công việc git-svn để hợp nhất bằng cách sử dụng svn.pushmergeinfo
Từ http://www.kernel.org/pub/software/scm/git/docs/git-svn.html:
chìa khóa cấu hình: svn.pushmergeinfo
Tùy chọn này sẽ gây ra git -svn to cố gắng tự động điền thuộc tính svn: mergeinfo vào kho lưu trữ SVN khi có thể. Hiện tại, điều này chỉ có thể được thực hiện khi thực hiện các hợp nhất không nhanh về phía trước mà tất cả phụ huynh nhưng đầu tiên đã được đẩy vào SVN.
Vì vậy, công việc bình thường của tôi là:
Giả sử tôi có một SVN chi nhánh ^/chi nhánh/feature_branch
# Ensure git-svn is configured to populate svn:mergeinfo
git config --global svn.pushmergeinfo true
# Update my local svn remotes state
git svn fetch
# Track a local branch against a remote SVN backed ^/branches/feature_branch
git checkout -b local_feature_branch remotes/feature_branch
# Modify files and commit to local git repo
git commit -a -m "changes"
# Push changes to SVN branch ^/branches/feature_branch
git svn dcommit
Sau đó, để hợp nhất lên ^/trunk vào local_feature_branch của tôi, tôi giả sử tôi làm điều gì đó như ?
# Sync to the latest SVN
git svn fetch
# Rebase "master" which is tracking the remote SVN ^/trunk
git checkout master
git svn rebase
# Checkout the local_feature_branch
git checkout local_feature_branch
# Merge "master" into "local_feature" which is tracking ^/trunk
git merge --squash master
git commit -m "merge master which is tracking SVN ^/trunk"
# Dry run the dcommit to SVN which should include svn:mergeinfo property changes
git svn dcommit --dry-run
# Commit merge to trunk
git svn dcommit
Có vẻ hợp lý. Câu hỏi là gì? –