2010-06-07 20 views
12

Di chuyển từ Subversion sang Git bằng svn2git (sử dụng nội bộ git-svn) Tôi muốn biết cách tôi có thể tìm thấy một cam kết sửa đổi cụ thể.Di chuyển từ Subversion sang Git làm thế nào tôi có thể tìm thấy một cam kết cho một số sửa đổi?

Thông thường, có trình theo dõi vấn đề để nhận các nhận xét như: "Đã sửa lỗi trong r12345".

Với điều này, tôi muốn có thể, ví dụ, để trích xuất các diff tương ứng với r12345.

Xin cảm ơn trước.

Trân

Trả lời

19

Với số phiên bản, bạn có thể tìm Git SHA với

git svn find-rev r1938 

Tôi không 'T biết nếu có một 'one-shot' cách để có được sự cam kết hoặc bất cứ điều gì, nhưng bạn có thể viết một cái gì đó giống như

git log -p `git svn find-rev r1938` 

Cập nhật: lưu ý rằng bạn cũng có thể lấy được thông báo cam kết với

git svn log -r 1938 

cập nhật lại: lưu ý rằng find-rev cũng hoạt động theo hướng ngược lại:

git svn find-rev c7443021942 

trả về số cam kết SVN.

+0

Thao tác này đang hoạt động trên kho lưu trữ đã được sử dụng để di chuyển. Nếu kho lưu trữ này đang ở xa, nó không thể được sử dụng nữa, tuy nhiên vẫn có thể sử dụng nó: 'git log --grep = '@ 12345''. Bạn có thể cập nhật câu trả lời của bạn với điều này không? –

+0

Tôi nghĩ rằng bình luận của bạn là đủ tốt ':)' Tôi không thực sự chắc chắn những gì bạn có nghĩa là "đi xa" vì vậy tôi không thể giúp quá nhiều, xin lỗi. –

+0

Ý tôi là: nếu bạn đẩy kho lưu trữ cục bộ đến kho lưu trữ từ xa. Sau đó, chỉ có phương thức 'git log' sẽ hoạt động. –

-2

Với Git nó tương tự như:

Fixed in d8602bb9729ddb2f28e61028cc5981cb310231a2. 

Lấy diff với:

git show d8602bb9729ddb2f28e61028cc5981cb310231a2 
+1

lưu ý rằng bạn thường chỉ cần năm ký tự đầu tiên của ký tự băm –

+0

Nó không cho tôi biết cách tôi có thể tìm ra rằng svn cam kết 12345 đã được ánh xạ tới cam kết ID: d8602bb9729ddb2f28e61028cc5981cb310231a2 sau khi di chuyển! Về cơ bản tôi cần một cái gì đó như: git show -r12345 –

+0

Bạn có thể sử dụng 'git log -1' để hiển thị ID cam kết của lần commit mới nhất. Cấp ID đó cho 'git show', voilá. Để tìm một bản sửa đổi svn cụ thể trong một kho lưu trữ, hãy thử 'git log --grep =‘ @ 12345 ’-p'. – Bombe

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