2012-05-02 23 views
6

Tôi mới sử dụng Git và tôi đang gặp rất nhiều khó khăn trong việc tìm ra điều này.Cách tốt nhất để xử lý các tệp .classpath trong Git khi các nhà phát triển đang sử dụng các phiên bản JBoss khác nhau trong các đường dẫn xây dựng dự án của họ?

Chúng tôi đang sử dụng Máy chủ ứng dụng JBoss 5.1 trong Eclipse. Một số người đã tải xuống Plugin JBoss Tools Eclipse để họ có thể thêm JBoss 5.1 Runtime Server dưới dạng "JBoss AS 5.1" vào không gian làm việc Eclipse của họ. Điều này dẫn đến một dòng classpath trông như thế này:

<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss 5.1 Runtime"/> 

Những người khác không nhìn thấy giá trị của tải và cài đặt các công cụ JBoss plugin, vì vậy họ chỉ cần sử dụng Eclipse tích hợp trong bộ chuyển đổi máy chủ JBoss, mà chỉ đi lên với JBoss v.50. Họ có một dòng classpath trông như thế này:

<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.generic.runtimeTarget/JBoss v5.0"/> 

Tôi không muốn thêm classpath để tập .gitignore của tôi bởi vì:

  1. Các tập tin đã được đẩy lên nguồn gốc của tôi, và loại bỏ chúng là một quá trình siêu đau đớn mà tôi đã thử và không hiểu được trong quá khứ.
  2. Tôi muốn những người đang thiết lập không gian làm việc mới để có thể nhập các dự án từ Git và bắt đầu ngay lập tức.

Cho đến nay chúng tôi vừa thử mỗi lần sửa đổi tệp .classpath trong thư mục làm việc của chúng tôi nhưng không bao giờ cam kết. Điều này gây phiền nhiễu không chỉ vì chúng tiếp tục hiển thị trong trạng thái git của chúng tôi, nhưng đôi khi chúng sẽ không cho phép chúng ta hợp nhất hoặc chuyển đổi các nhánh trong Egit - phàn nàn về những thay đổi không được cam kết.

Tôi đã đọc trên internet về việc sử dụng Biến Classpath thay vào đó, nhưng tôi dường như không thể tìm thấy đường dẫn chính xác đến thư viện JBoss. Các đường classpath tôi liệt kê ở trên dường như trỏ đến một nơi nào đó bên trong thư mục Eclipse/plugins ở đâu đó? Nhưng tôi không thể tìm thấy nó. Tôi cũng đã cố gắng chỉ một số biến vào thư mục C: \ jboss-5.1.0.GA \ của tôi, nhưng điều đó dường như không làm gì cả.

Có cách nào để thoát tệp .classpath bên trong kho lưu trữ vì nó đang ở trạng thái hiện tại, để người dùng mới sao chép kho lưu trữ vẫn nhận được chúng, nhưng sau đó bỏ qua tất cả các thay đổi trong tương lai mà bất kỳ nhà phát triển nào thực hiện Tập tài liệu?

+0

trả lời cho bạn câu cuối cùng là một cái gì đó bạn đã đề cập:. gitignore. – yorkw

+0

Tôi không nghĩ rằng việc xóa các tệp đã được đẩy là "siêu đau". Bạn có thể thử di chuyển tệp cục bộ tạm thời và sau đó thực hiện commit -A & push. – eaykin

Trả lời

1

Câu trả lời khác có thể là sử dụng content filter driver, tức là tập lệnh bạn khai báo trong tệp .gitattribute.

filter driver

On thanh toán của repo của bạn, kịch bản smudge sẽ chịu trách nhiệm phân tích môi trường địa phương, phát hiện JBoss tại chỗ và thích nghi với các classpathentry cho phù hợp.
Bằng cách đó, bạn có thể giữ nội dung hữu ích nhất của tệp đó đã được phiên bản, trong khi thích ứng với một số trường hợp đặc biệt trong đó classpathentry không đúng.

+2

Bạn liên kết với câu trả lời của riêng bạn, mà ... liên kết đến câu trả lời của riêng bạn. –

+1

@GlennMaynard chính xác: hai câu trả lời cũ hơn chi tiết hơn một chút bước 'smudge' trong bộ lọc nội dung. – VonC

6

Một cách dễ dàng, một khi mỗi nhà phát triển giải pháp từ Pagebakersgit

git update-index --assume-unchanged <file> 

Để hủy bỏ nó, chỉ cần sử dụng

git update-index --no-assume-unchanged <file> 
+0

Câu trả lời này là đề xuất của trang [Bỏ qua tệp trợ giúp của GitHub] (https://help.github.com/articles/ignoring-files) cho "tệp trong kho lưu trữ, được phiên bản (_i.e._ chúng có thể ' t được git bỏ qua), thường được thay đổi, nhưng hiếm khi được cam kết. Thông thường đây là các tệp cấu hình cục bộ khác nhau được chỉnh sửa, nhưng không bao giờ được cam kết ngược dòng. " – Daryn