2012-01-30 40 views
5

git-svn dcommit đang cố gắng đẩy chi nhánh SVN sai. Dưới đây là những gì tôi đã làm:git-svn cố gắng cam kết sai chi nhánh

git checkout -b branch_a svn/branch_a # git-svn clone prepended all remote SVN branches with svn/ 
git svn branch -m "a message" branch_b 
git checkout -b branch_b svn/branch_b 

<make some commits> 

git svn dcommit 
git checkout branch_a 
git svn rebase 
git checkout branch_b 
git rebase branch_a 

Đây là "đúng" nhánh/sáp nhập chiến lược tôi giải thích từ this StackOverflow câu hỏi.

Bây giờ tôi đang trong một dưa chua. git svn dcommit từ branch_b cố gắng đẩy tới URL SVN cho svn/branch_a. Điều này được xác nhận bởi đầu ra của git svn info. Đây cũng không phải là điều tôi muốn hay mong đợi.

Điều thú vị là git log --grep='^git-svn-id:' --first-parent -1 hiển thị chi nhánh SVN chính xác, URL cho svn/branch_b. Tôi đã đọc rằng lệnh này là được cho là để tiết lộ nơi git-svn sẽ chấp nhận.

Vì vậy:

  1. Tôi đã làm gì sai?
  2. Làm thế nào tôi có thể sửa chữa nó (tức là, đẩy branch_b để svn/branch_b
+0

Đó có phải là các lệnh thanh toán chính xác mà bạn đã sử dụng không? AFAIK bạn cần -t để theo dõi một nhánh từ xa. –

Trả lời

1

Nhìn qua các lệnh thanh toán của bạn, có vẻ như bạn có thể không có hướng dẫn git svn để theo dõi các chi nhánh SVN từ xa một cách chính xác Hãy thử những lệnh:.

git checkout -b branch_a -t svn/branch_a 
git checkout -b branch_b -t svn/branch_b 

và sau đó xác minh các chi nhánh bạn đang theo dõi sau mỗi lần với:

git svn info 

mỗi chi nhánh nên sau đó theo dõi nhánh từ xa chính xác.

Các vấn đề liên quan