2012-04-24 31 views
7

Tôi có một không gian làm việc Eclipse với nhiều (> 50) gói. Một số gói chứa cài đặt dự án đặc biệt cho, ví dụ: định dạng mã dành riêng cho khách hàng.Eclipse thay đổi nhận xét thời gian cài đặt dự án sau khi thanh toán

Nếu tôi thiết lập không gian làm việc mới và kiểm tra dự án hiện có với định dạng mã dành riêng cho khách hàng, Eclipse sẽ tự động thay đổi nhận xét trong ngày org.eclipse.jdt.ui.prefs thành ngày hiện tại!

Đây là tập tin ưu đãi (org.eclipse.jdt.ui.prefs) trong SVN:

#Tue Apr 24 09:15:20 CEST 2012 
eclipse.preferences.version=1 
formatter_profile=_myProfile 
formatter_settings_version=12 

Đây là tập tin (org.eclipse.jdt.ui.prefs) sau khi thanh toán:

#Tue Apr 24 09:30:25 CEST 2012 
eclipse.preferences.version=1 
formatter_profile=_myProfile 
formatter_settings_version=12 

Các tương tự xảy ra với org.eclipse.core.resources.prefs cài đặt tập tin nếu tôi đặt mã hóa thành UTF-8 cho toàn bộ dự án.

SVN:

#Tue Apr 24 09:26:48 CEST 2012 
eclipse.preferences.version=1 
encoding/<project>=UTF-8 

Sau lần kiểm tra:

#Tue Apr 24 09:28:00 CEST 2012 
eclipse.preferences.version=1 
encoding/<project>=UTF-8 

Nếu một dự án chứa cả file cài đặt (org.eclipse.core.resources.prefsorg.eclipse.jdt.ui.prefs) chỉ các tập tin org.eclipse.core.resources.prefs thiết lập sẽ được thay đổi!

Có ai đó biết tại sao Eclipse thay đổi dòng này và cách tôi có thể tránh không?

+2

Câu hỏi rất thú vị. Tôi không có câu trả lời, nhưng một bình luận: nó là thuận tiện để lưu trữ các thiết lập của Eclipse trong lật đổ, nhưng đôi khi nó cắn bạn. Subversion chỉ có thể lưu trữ các tệp hoàn chỉnh và cấu hình của Eclipse là cấu hình một phần, một phần được tạo hoặc được lưu trong bộ nhớ cache. – mliebelt

+0

Như ** lý do tại sao ** Eclipse thay đổi ngày: đây là định dạng tệp '.properties' chuẩn được xử lý bởi [java.util.Properties] (http://docs.oracle.com/javase/6/docs/api /java/util/Properties.html). Nó bao gồm ngày tập tin được viết. –

Trả lời

6

KHÔNG lưu trữ cài đặt nhật thực của bạn trong các mục lật! Nó không cho phép bạn có các cài đặt khác nhau hoặc các phiên bản nhật thực khác nhau. Nó sẽ là một nỗi đau thực sự nếu bạn có môi trường khác nhau.

Cân nhắc sử dụng một cái gì đó như Workspace Mechanics nếu bạn muốn giữ cho cài đặt không gian làm việc của mình được đồng bộ hóa.

Nếu điều này chỉ để chia sẻ cài đặt định dạng của bạn, hãy xuất chúng dưới dạng XML và lưu trữ tệp XML trong kho lưu trữ của bạn. Mỗi người phát triển có thể nhập tệp XML.

+0

Cảm ơn câu trả lời của bạn nhưng - (1) nói chung chúng tôi có nhật thực nhà phát triển chuẩn. Tất cả các nhà phát triển đều có cùng phiên bản! Nhưng chúng tôi cần cho các dự án khác nhau của khách hàng cụ thể seetings. (2) Cảm ơn bạn đã liên kết đến Workspace Mechanics. Tôi sẽ kiểm tra nó ngay hôm nay! – Tim

+1

Cơ chế Không gian làm việc là tốt ... nhưng cuối cùng tôi đã kiểm tra bạn có thể _không có các cài đặt khác nhau cho các dự án khác nhau. Tôi cũng cần phải có định dạng khác nhau cho các dự án khác nhau - mặc dù trong trường hợp này là do lý do lịch sử ... –

+0

Cơ chế không gian làm việc không phải là một lựa chọn cho chúng tôi! Chúng tôi sẽ bắt đầu chia sẻ các thiết lập định dạng của chúng tôi cho toàn bộ IDE và không dự án cụ thể nữa! Do đó, đây là câu trả lời đúng cho tôi! – Tim

1

Điều này cũng khiến tôi bối rối trong một số trường hợp, nhưng tôi không chắc chắn rằng tôi có thể cung cấp cho bạn câu trả lời hoàn chỉnh.

Trước hết, các tệp org.eclipse.core.resources.prefskhông bao giờ bao gồm dấu thời gian! Tôi có các tệp tùy chọn khác - như org.eclipse.jdt.ui.prefs - dường như luôn có dấu thời gian. Trong thiết lập hiện tại của tôi, chúng dường như không được cập nhật quá mức.

Có rất nhiều thế hệ các API sở thích

  • org.eclipse.core.runtime.Preferences - Accessed qua Plugin.getPluginPreferences() - Không dùng nữa trong Eclipse 3.0; bây giờ được mô phỏng - Không sử dụng cái này!
  • org.eclipse.jface.preference.* - Đã truy cập qua AbstractUIPlugin.getPreferenceStore() - Được thay thế trong Eclipse 3.1; hiện mô phỏng - Được sử dụng cho các biên tập viên lĩnh vực
  • org.eclipse.core.runtime.preferences.* - Accessed qua Platform.getPreferencesService() - Dựa trên một dịch vụ ưu tiên OSGi

Những ưu đãi về sử dụng thế hệ thứ ba của API, đọc và ghi các file ưu tiên dường như luôn luôn xảy ra qua EclipsePreferences . Lớp này thực hiện điều "đúng" và loại bỏ dấu thời gian.

Trong một số trường hợp - ví dụ: trong việc xử lý định dạng trong JDT - một đặc biệt org.eclipse.jface.preference.PreferenceStore được sử dụng. Lớp này không làm điều đúng như chỉ đơn giản là viết ra dấu thời gian.

Tại sao lớp này được sử dụng và chính xác trong đó trường hợp nó được sử dụng, không phải là rất rõ ràng từ mã ...

Một điều chắc chắn, mặc dù tôi không thể tìm thấy một cách để tránh tình trạng này!

1

Đây có phải là vấn đề với kết thúc dòng không? Một đặc thù của phiên bản Eclipse cụ thể của bạn?

Tôi có thể tưởng tượng Eclipse viết lại các tệp cài đặt mà không có thay đổi rõ ràng nào nếu ký tự EOL được sử dụng cho tệp trong SVN không khớp với mặc định trên máy được sử dụng để phát triển. Trong trường hợp đó, bạn chỉ nên xem vấn đề khi chuyển máy. Bản sửa lỗi sẽ là thêm thuộc tính svn:eol-style = native vào các tệp có vấn đề.

Tôi giới hạn bản thân mình để suy đoán về sự cố vì tôi không thể sao chép hành vi bạn đang thấy, có hoặc không có kết thúc dòng không khớp. Tôi có rất nhiều dự án Eclipse với các tệp cấu hình trong repo và mặc dù chúng không tự động thay đổi một cách thường xuyên bởi Eclipse theo những cách không mong muốn, chúng luôn thay đổi đáng kể. Tôi không thể nhận được bất kỳ tệp cài đặt nào để chỉ thay đổi datestamp của họ chỉ bằng cách nhập dự án của họ trên Eclipse Helios SR2 (phù hợp hơn với định dạng tệp cài đặt của bạn) hoặc SDK Eclipse 3.7.2 (M20120208-0800). Có lẽ chỉ đơn thuần là nâng cấp Eclipse sẽ giải quyết vấn đề (hãy chắc chắn để xuất các thiết lập của bạn!).

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