2011-12-27 35 views
22

Về cơ bản tôi muốn hiển thị các thay đổi của mình mà không cần phải đẩy chúng và không chuyển đổi nhánh. Điều này cho phép tôi thực hiện một số công việc, commit khi tôi đang ở điểm dừng tốt và sau đó tiếp tục làm việc trong cùng một chi nhánh. Nếu tôi lộn xộn, tôi có thể revert, nếu tôi thêm thay đổi mới, tôi chỉ có thể commit một lần nữa.SVN có tương đương với cam kết của git (không có push) không?

Tôi nhận ra mình có thể tạo chi nhánh tính năng trong SVN để theo dõi những thay đổi này, nhưng một lần nữa, tôi muốn làm như vậy trong khi vẫn ở cùng nhánh/thân cây. Ngay cả tương đương với git stash sẽ đủ, mặc dù có vẻ như SVN không có tính năng đó.

+0

Xem thêm: http://stackoverflow.com/a/527048/59087 –

Trả lời

31

Điểm chính của điều khiển phiên bản được phân phối là tính năng này của các cam kết cục bộ có thể tại điểm sau đó được hợp nhất với kho lưu trữ ngược dòng. SVN không được phân phối và không thể làm được. Trở ngại chính là số hiệu sửa đổi tuyến tính của SVN, điều này ngụ ý rằng mọi khách hàng đều phải nhận được một số sửa đổi mới cho mỗi lần thay đổi. Kể từ khi "phân bổ" một số sửa đổi và sau đó sử dụng nó sẽ dẫn đến tất cả các loại điều kiện chủng tộc, hành động "cam kết" và "đẩy" là nguyên tử trong SVN và mọi hệ thống điều khiển phiên bản không phân phối.

Điều đó đang được nói, lối vào SVN của git là một lựa chọn tốt, như Joe đã đề xuất. Nó đảm bảo rằng SVN không bao giờ nhìn thấy các cam kết địa phương, cá nhân của bạn, và "đẩy" được dịch sang một cam kết SVN lớn duy nhất.

+2

Nếu bạn đang đề cập đến git-svn, sau đó một push dịch mỗi git cam kết vào một cam kết svn. Tuy nhiên, người ta có thể tự chỉnh sửa các cam kết trước khi đẩy. –

25

Theo thiết kế SVN không, tuy nhiên bạn có thể sử dụng lệnh git's git svn làm giao diện người dùng cho SVN. Nó cho phép bạn thực hiện công việc push/pull từ một remote SVN nhưng vẫn sử dụng git cục bộ, và do đó thực hiện các cam kết cục bộ mà không cần đẩy tới kho SVN.

Something như thế này có thể giúp: http://www.viget.com/extend/effectively-using-git-with-subversion/

+5

+1: Git là giao diện người dùng hoàn hảo cho Subversion. – Johnsyweb

+2

Từ sự hiểu biết của tôi về SVN, nó được tập trung rất nhiều. Có nghĩa là nếu bạn cam kết bất cứ điều gì nó đi đến repo trung tâm. Các IDE khác có thể thực hiện một "Snapshot" cục bộ trong khi bạn thực hiện các thay đổi của mình và lưu lại. – Joe

1

Bạn có thể có thể sử dụng chăn để làm điều này, mặc dù nó bắt đầu nhận được khó khăn nếu bạn chỉ muốn cam kết một phần của hàng đợi chăn của bạn để svn.

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