さて、私がしたこと(Windows 7のEclipse Juno)は次のとおりです。
新しいEclipseワークスペースを作成し、たとえばtest
、それを実行してシャットダウンするだけです
gitリポジトリにしました
この .gitignore とともに Eclipse によって作成されたファイルをコミットしました。
# binary files
*.dat
*.tree
*.index
.metadata/.plugins/org.eclipse.jdt.core/invalidArchivesCache
.metadata/.plugins/org.eclipse.jdt.core/nonChainingJarsCache
.metadata/.mylyn/repositories.xml.zip
*.resources
# logs
*.log
.metadata/.lock
# later additions
.metadata/.plugins/org.eclipse.pde.core/.cache/
*.running
新しい支部に変わりました
ワークスペースの 1 つを起動し、すべての設定をエクスポートしてから、test
ワークスペースを起動してインポートしました。Beyond Compare を使用して、ワークスペースの .metadata/ ディレクトリを比較しました。.metadata\.plugins\org.eclipse.core.runtime\.settings\
フォルダーはファイルを除いて同一でしたorg.eclipse.ui.workbench.prefs
が、違いは重要ではないようでした (つまり、ワークスペース固有)。ワークスペースをシャットダウンすると、ファイルorg.eclipse.jdt.launching.prefs
も変更されました。マスターに切り替えて、残りのワークスペースで繰り返しました。
複雑な問題がありました - 例えば:
ファイルorg.eclipse.jdt.core.prefs
はワークスペースに存在してtest
いましたが、元のワークスペース (インポートされたもの) には (バイナリ同一) がありましたorg.eclipse.jdt.core.prefs.bak
。
ファイルorg.eclipse.pde.core.prefs
はインポートされませんでした
ファイルorg.eclipse.jdt.launching.prefs
とはorg.eclipse.ui.workbench.prefs
異なります。
5番目のワークスペースの後、私はファイルが
.metadata/.plugins/org.eclipse.jdt.launching/libraryInfos.xml
.metadata/.plugins/org.eclipse.jdt.launching/.install.xml
設定が(新しいワークスペースに)インポートされたときに作成され、ファイル.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.pde.core.prefs
がエクスポート/インポートされず、インポート時にファイル.settings\org.eclipse.ui.workbench.prefs
がマージされ(つまり、 *ENABLED_DECORATORS* 変数はそのまま残ります)、org.eclipse.jdt.launching.prefs
Eclipseのシャットダウン時に編集されます。
プロジェクト参照を含むファイルなど、さらに複雑な問題があります。
たとえば、ファイルorg.eclipse.wst.sse.core.prefs
にはワークスペースのプロジェクト名が含まれています - これはバグとして報告しました(すぐに修正されました!)。
CDT は次のような一連のファイルを作成します。
.settings/org.eclipse.cdt.core.prj-<projectName>.prefs
.settings/org.eclipse.cdt.ui.prj-<projectName>.prefs
エクスポート/インポート時に盲目的に同期されます。これは実際には、前のケースよりもはるかに複雑なケースであり、報告もされています。
実際、ディレクトリにあるものはすべて.settings
一緒にコピーされます(接尾辞が付いている限り.prefs
)。これにより、別のバグレポートが保証されます。
同様の状況は、ワークスペース固有のオプションを含む他のファイル (ワークスペース固有org.eclipse.ui.ide.prefs
のワーキング セットへの参照を含むファイルや、org.eclipse.ui.browser.prefs
通常はワークスペース固有の internalWebBrowserHistory を含むファイル) でも発生します。
とにかく、私はハードリンクに行くことにしました - それで私は自分の設定を正規化し(新しいワークスペースから始める方がはるかに簡単でしょう)、 、 、および を除くすべての設定をコピーしましorg.eclipse.wst.sse.core.prefs
たcdt
(org.eclipse.pde.core.prefs
何らかの理由でインポートされませんでした) .org.eclipse.ui.workbench.prefs
かなり特別なものには、ショートカットも含まれています)。次に実行します:
REM move_settings.bat
set SETTINGS_DIR=C:\path\to\tempalte\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings
set WORKSPACE_SETTINGS_DIR=C:\path\to\actual\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings
mkdir %WORKSPACE_SETTINGS_DIR%\zBackups
pause
FOR /F %%G IN ('DIR^ %%SETTINGS_DIR%%^ /b') DO (
move %WORKSPACE_SETTINGS_DIR%\%%G %WORKSPACE_SETTINGS_DIR%\zBackups
mklink /H %WORKSPACE_SETTINGS_DIR%\%%G %SETTINGS_DIR%\%%G
)
pause
私のワークスペースのために。
そして何を推測してください: Eclipse はハード リンクを壊します。ソフトリンク ( mklink %WORKSPACE_SETTINGS_DIR%\%%G %SETTINGS_DIR%\%%G
) を試しましたが、喜びもありませんでした。
ついに
設定ディレクトリ全体を(私が言及したすべての問題のあるファイルとともに)ハードリンク(ジャンクション)する必要がありました-これは実際には解決策ではありません。最近のいずれかの状況に対処する必要があります。とにかく、ここに.bat
私が使用したものがあります:
:: Change to the directory that this batch file is in
:: NB: it must be invoked with a full path!
:: run the bat from the dir you want to backup your prefs to
for /f %%i in ("%0") do set curpath=%%~dpi
cd /d %curpath%
set WORKSPACES=javaEE\ javaSE\ c++\ python\ android\
set TEMPLATE_WORKSPACE=name_of_the_template_workspace\
set WORKSPACES_DIR=C:\Dropbox\eclipse_workspaces\
set SETTINGS_DIR=.metadata\.plugins\org.eclipse.core.runtime\.settings
REM set SETTINGS_DIR=.metadata\.plugins\org.eclipse.core.runtime\.settings\ WONT DO
set TEMPLATE_SETTINGS_DIR=%WORKSPACES_DIR%%TEMPLATE_WORKSPACE%%SETTINGS_DIR%
for %%G in (%WORKSPACES%) do (call :subroutine_needed %%G)
GOTO :eof
:subroutine_needed
set WORKSPACE=%1
set WORKSPACE_SETTINGS_DIR=%WORKSPACES_DIR%%WORKSPACE%%SETTINGS_DIR%
set BACKUP_DIR=%CD%\zBackups\%WORKSPACE%
mkdir %BACKUP_DIR%
pause
move %WORKSPACE_SETTINGS_DIR% %BACKUP_DIR%
pause
junction %WORKSPACE_SETTINGS_DIR% %TEMPLATE_SETTINGS_DIR%
pause
必要に応じてこの投稿を更新します