2011-08-02 43 views
8
$ git svn clone -s http://a_repo local_dir (by default this brings me r1) to hdd 
    Initialized empty Git repository in d:/Temp/local_dir/.git/ 
    r1 = some_SHA (refs/remotes/trunk) 

    $ cd local_dir 
    $ git svn rebase 
    fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. 
    Use '--' to separate paths from revisions 
    log --no-color --no-decorate --first-parent --pretty=medium HEAD: command returned error: 128 

Làm cách nào để tôi có thể kiểm tra repo?git svn đối số mơ hồ 'HEAD'

Tôi cũng đã thử mà không cần rebasing, để sử dụng fetch, nhưng nó chỉ mang lại một sửa đổi tại một thời điểm. Chúng tôi có vài nghìn cam kết, với tốc độ này, sẽ mất vài ngày để sao chép kho lưu trữ.

+0

bạn có nghĩa là 'git svn clone' mang chỉ ONE sửa đổi? Bạn đang sử dụng '-s', là repo SVN của bạn thực sự trong bố trí tiêu chuẩn? Thông thường, 'git svn clone' shoud cũng tạo một bản sao làm việc. – eckes

Trả lời

9

Nếu bạn chỉ nhận được một cam kết trong repo SVN của bạn, tôi giả định rằng repo SVN không phải là trong bố trí tiêu chuẩn nhưng bạn nói với git svn rằng nó được.

git svn clone http://a_repo local_dir 

(tức là không có cờ -s) sẽ có thể sao chép bộ repo SVN. Nếu điều này làm việc, hãy thử lại bản sao và chỉ định thư mục thân cây, thẻ và thư mục của bạn như được mô tả trong docs of git-svn.

+0

Kho lưu trữ của tôi nằm trong bố cục chuẩn. Tôi cũng đã thử qua -T, xác định thân cây là tham số, cùng một điều. Tôi nhớ đọc ở đâu đó rằng nếu bạn bắt đầu một bản sao svn thông qua 'fetch', bạn chỉ có thể tiếp tục thông qua' fetch'. Có lẽ đó là lý do tại sao lấy "công trình" (chỉ nhận được một sửa đổi cho mỗi cuộc gọi)? Bởi vì một bản sao git là một init theo sau là một tìm nạp? – Senthess

+0

@Senthess: Có một bản sao đơn giản 'git svn http: // a_repo local_dir' (tức là không có bất kỳ repo-layout-info-param) nào hoạt động hay không? Ngoài ra, 'git svn fetch' sẽ hiển thị tất cả các bản sửa đổi, không chỉ có một bản sửa đổi. Bạn làm một 'git svn clone' vào một thư mục mới mà không cần repo, phải không? – eckes

+0

Tôi không còn làm việc nữa, và rất tiếc là tôi không thể kiểm tra điều này. Tôi sẽ viết kết quả vào buổi sáng. Tôi nhân bản vào một thư mục mới (không có tệp nào tồn tại trước khi sao chép). – Senthess

2
git svn clone [your-repo-url] -s 
# OR 
git svn clone [your-repo-url] -T [your-trunk-dir] -t [your-tags-dir] -b [your-branches-dir] 

Nếu bạn không chỉ định cờ -r (như trên), sau đó bạn cần phải

git svn fetch 
2

Lỗi này xảy ra khi bạn sao chép một chi nhánh thay vì kho toàn SVN.

Nếu URL repo của bạn trông như https://svnserver/project/repo/trunk hoặc https://svnserver/project/branches/pre-something, thay đổi lệnh clone để:

git svn clone https://svnserver/project/repo --stdlayout 
Các vấn đề liên quan