2012-06-03 5 views
6

Cố gắng thực hiện bản phát hành cho dự án maven đã được phát hành thành công trước đó.Phát hành Maven: chuẩn bị không cam kết thẻ

Khi tôi thực hiện mvn release:prepare Tôi được nhắc về thẻ phát hành và thẻ ảnh chụp mới và dự án được tạo.

Nhưng khi nó cố gắng đẩy để điều khiển từ xa, tôi nhận được

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project NeuralAnalysis: Unable to tag SCM [ERROR] Provider message: [ERROR] The git-push command failed. [ERROR] Command output: [ERROR] To ssh://[email protected]/NeuralAnalysis.git [ERROR] ! [rejected] NeuralAnalysis-1.5.6 -> NeuralAnalysis-1.5.6 (non-fast-forward) [ERROR] error: failed to push some refs to 'ssh://[email protected]/NeuralAnalysis.git' [ERROR] To prevent you from losing history, non-fast-forward updates were rejected

Và quả thực, cố gắng thực hiện git push ssh://[email protected]/NeuralAnalysis.git NeuralAnalysis-1.5.6 bằng tay, cũng thoát với khiếu nại tương tự.

Thực hiện git pull cho biết 'Đã cập nhật'. git branch cho thấy tôi đang ở trên 'tổng thể'. git push origin cho 'Mọi thứ được cập nhật'.

Nhìn vào kho lưu trữ bằng cách sử dụng các chương trình Tháp 'master', 'origin/master' và 'NeuralAnalysis-1.5.6' đều giống nhau và trên lần commit cuối cùng. Thư mục làm việc chứa các tệp release.properties và pom.xml.releaseBackup.

Dường như với tôi, mọi thứ đều ổn với tổng thể kho lưu trữ.

+1

Bạn có (cục bộ hoặc trên điều khiển từ xa) một nhánh * có tên 'NeuralAnalysis-1.5.6' giống như thẻ bạn đang cố gắng đẩy không? Bạn có thể chỉnh sửa câu hỏi của mình với đầu ra của 'git push --verbose ssh: //[email protected]/NeuralAnalysis.git NeuralAnalysis-1.5.6' không? – VonC

Trả lời

9

Hóa ra đó là một thẻ từ xa có cùng tên, như đề xuất của VonC trong nhận xét. Điều này có thể được tạo ra bởi một số bản phát hành bị hủy bỏ trước đó.

Mặc dù tôi đã tìm thấy thẻ từ xa bằng cách kiểm tra thủ công thư mục refs/tags trên kho từ xa, git ls-remote --tags cũng sẽ hiển thị chúng và git push --verbose cũng sẽ hiển thị thêm về vấn đề nói chung.

Để khắc phục điều này, trước tiên hãy truy xuất các thẻ từ xa bằng git fetch --tags. Một cách để thực hiện bước tiếp theo là chỉ cần bỏ qua thẻ phát hành đó bằng cách cập nhật tệp pom.xml để có phiên bản SNAPSHOT cao hơn (bao gồm mọi tham chiếu trong cùng một dự án bởi các mô-đun khác cho ảnh chụp nhanh đó), hãy kiểm tra các trong và làm mvn release:clean; mvn release:prepare lần nữa.

+0

Phản hồi thú vị. +1 – VonC

+0

Có, phản hồi tốt +1 –