Tôi đang ở đâu: Linux dòng lệnhSVN nguyên tử cam kết như thế nào-to
Vấn đề tôi có bây giờ:
Đôi khi tôi không thể thực hiện cam kết nguyên tử (bao gồm tất cả những sửa đổi cần thiết cho một vé đặc biệt/nhiệm vụ), bởi vì chúng tôi có một số tệp trong kho lưu trữ, nội dung nào khác nhau ở môi trường phát triển cục bộ.
Ví dụ: database.xml
(dbname, tên người dùng, mật khẩu, v.v.). Tôi sửa đổi tệp này trong môi trường cục bộ của mình và mỗi lần tôi cần thực hiện cam kết/kiểm tra, tôi đã liệt kê tất cả các tệp/thư mục cần thiết cho cam kết (không bao gồm tệp được sửa đổi cục bộ này).
Có thể đó là quyết định thiết kế sai và database.xml
phải bị xóa khỏi kho và thay đổi cho database.xml.template
(được lưu trữ trong SVN), vì vậy tệp này sẽ không được bao gồm để cam kết cho đến khi bạn thực hiện thủ công svn add
cho nó? Có thể đó là cách tiếp cận sai - để lưu trữ tất cả thông tin phụ thuộc vào môi trường này trong kho lưu trữ - trong trường hợp đó chúng tôi có thể phá vỡ mọi thứ bằng cách cam kết cấu hình đã sửa đổi, ví dụ:
Như tôi đã hiểu, svn:ignore
tài sản không thể trợ giúp tình huống này, bởi vì nó chỉ có thể được sử dụng cho các tệp không được lưu trữ trong kho lưu trữ.
Làm cách nào để giải quyết vấn đề này?
P.S .: Tôi đang sử dụng Ubuntu và dòng lệnh thuần túy cho SVN.
Tôi đồng ý với việc giữ một tệp '.template' trong Subversion và cấu hình thực, phiên bản sửa đổi, chỉ cục bộ.Điều quan trọng là các nhà phát triển nên * không bao giờ * sửa đổi các tập tin cấu hình thực sự khác với cấu hình cá nhân. Nghĩa là, nếu một tùy chọn mới được thêm vào tệp, thì nó phải được thêm vào tệp '.template' và sau đó tạo lại tệp cấu hình của riêng nó (có thể tự động hóa việc xây dựng lại cấu hình từ' .template' tập tin với một kịch bản để giảm bớt công việc). –
Có, tôi đã có database.xml.template trong SVN, database.xml.override trong các kiểm tra cục bộ và bỏ qua, và một kịch bản lệnh để kết hợp hai để tạo ra tệp database.xml. Ít nhất, tôi sẽ nếu tôi có thời gian để viết kịch bản ;-) Nếu không, các nhà phát triển phải thực hiện việc hợp nhất thủ công vào databaes.xml mỗi khi thay đổi database.xml.template. –
Trên thực tế, nếu nhà phát triển muốn thực sự ưa thích, thì có thể làm cho tệp database.xml.override liên kết cứng đến tệp mà họ kiểm soát phiên bản trong nhánh cá nhân của kho lưu trữ, do đó cấu hình cá nhân cũng được kiểm soát. –