我知道它一次又一次出现但我的具体问题是:我有多个工作区使用wpt,cdt和jdt扩展(以及其他)。我想从我的所有工作区创建硬链接(我在Windows上)到管理快捷方式,工作区首选项等内容的设置文件的子集。例如,当我在一个工作区中更改快捷方式时,更改将传播到所有其他工作区。问题是.metadata / .plugins文件夹是一个完整的混乱(我相信设置都在那里)。例如,我知道我必须链接文件:
<workspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.core.prefs
<workspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.ui.prefs
我相信我不应该尝试链接整个.metadata / .plugins文件夹,因为它包含特定于工作空间的数据。
安全和足够来链接\.metadata\.plugins\org.eclipse.core.runtime\.settings
目录吗?
有人可以向我提供一些文档,说明.index
内的所有.dat
和\.metadata\.plugins\
二进制文件是什么?
如果无法做到这一点,我将非常感谢.prefs
目录中的各种\.metadata\.plugins\*\.settings
文件,尤其是.metadata\.plugins\org.eclipse.core.runtime\.settings
一个
由于
答案 0 :(得分:6)
好吧,我所做的(在Windows 7上的eclipse juno)是:
创建了一个新的eclipse工作区,比如test
,运行它并关闭它
将其制作成git repo
提交了eclipse创建的文件以及.gitignore:
# 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
切换到新分支
启动我的一个工作区,导出所有设置,然后启动test
工作区并导入它们。在Beyond Compare的帮助下比较工作空间的.metadata / dirs。除了.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
不同。
在第五个工作区之后,我确定了文件
.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 * var保持原样)并且在关闭日食时编辑org.eclipse.jdt.launching.prefs
。
还有一些复杂问题,例如包含项目引用的文件:
例如,文件org.eclipse.wst.sse.core.prefs
包含工作区中的项目名称 - 我将其报告为bug(修复得非常快!)。
CDT创建了一堆文件,如:
.settings/org.eclipse.cdt.core.prj-<projectName>.prefs
.settings/org.eclipse.cdt.ui.prj-<projectName>.prefs
在出口/进口时盲目同步。这实际上比前一个更复杂 - reported it also。
事实上,.settings
目录中的任何内容都将被复制(我猜只要它有.prefs
后缀)。这保证了另一个错误报告。
在包含特定于工作空间的选项的其他文件中遇到类似的情况 - 例如在org.eclipse.ui.ide.prefs
中包含对工作集的引用 - 特别是工作区特定的 - 或在包含internalWebBrowserHistory的org.eclipse.ui.browser.prefs
中 - 通常也是工作区特定的。
无论如何我决定去寻找硬链接 - 所以我将我的偏好标准化(从新工作区开始要容易得多)并复制除org.eclipse.wst.sse.core.prefs
之外的所有设置,{{1} }和cdt
(由于某种原因它没有被导入。org.eclipse.pde.core.prefs
相当特殊也包含快捷键)。然后我跑:
org.eclipse.ui.workbench.prefs
我的工作区。
猜猜: eclipse打破了硬链接。我尝试过软链接(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
),但也没有喜悦。
我必须硬连接(连接)整个设置目录(以及我提到的所有有问题的文件) - 这实际上不是解决方案。有一天必须解决这种情况。无论如何,这是我使用的mklink %WORKSPACE_SETTINGS_DIR%\%%G %SETTINGS_DIR%\%%G
:
.bat
我会根据需要更新这篇文章
答案 1 :(得分:5)
您还可以查看工作区机制,这是一个由谷歌开发的小插件:http://code.google.com/a/eclipselabs.org/p/workspacemechanic/
更新28/11/12
据我所知,您需要保持一些插件首选项的同步。
wiki解释得很清楚。我推荐你的步骤如下:
有了这个,您应该能够处理同步工作区首选项。
奖励:我喜欢将工作区机制首选项放在dropbox上,以便在团队成员之间和/或我的计算机之间共享,您可以在此处找到一个小方法:https://gist.github.com/3090900
希望这有帮助。
此致
答案 2 :(得分:2)
遗憾的是仍然需要解决方法..我和你做了类似的步骤,但我首先尝试硬链接,然后做了git存储库。
对我来说,git存储库是更好的选择,因为我想在多个工作站上同步我的工作区。所以对于仍在寻找解决方案的所有人来说,我就像你一样开始:
到目前为止,我设法让.gitignore
包含所有不需要或不重要的内容。我的工作区仍然不是100%便携,但差不多......
当我启动一个新的Eclipse工作区时,我需要做的只是git clone
,这很简单。缺点是有一些设置没有被跟踪。这些主要是GUI设置,几乎都包含工作区特定的设置。
因此,使用此.gitignore,您可以拥有一个手动同步的工作区,该工作区适用于大多数设置。但它需要保持......
/.lock
*.log
*.index
/.plugins/org.eclipse.core.resources/.projects
/.plugins/org.eclipse.epp.usagedata.recording
/.plugins/org.eclipse.core.resources/.history
/.plugins/org.eclipse.ltk.core.refactoring/.refactorings
/.mylyn
/.plugins/org.eclipse.core.resources/.root/
/.plugins/org.eclipse.core.resources/.safetable/org.eclipse.core.resources
/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.egit.core.prefs
/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.epp.usagedata.recording.prefs
/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.ui.ide.prefs
/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.sse.core.prefs
/.plugins/org.eclipse.jdt.core/
/.plugins/org.eclipse.jdt.ui/OpenTypeHistory.xml
/.plugins/org.eclipse.jdt.ui/QualifiedTypeNameHistory.xml
/.plugins/org.eclipse.jdt.ui/jdt-images/
/.plugins/org.eclipse.ui.workbench/workingsets.xml
/.plugins/org.eclipse.wb.discovery.core/
/.plugins/org.eclipse.wb.core/
/.plugins/org.eclipse.wst.internet.cache/cache.xml
/.plugins/org.eclipse.team.ui/syncParticipants.xml
/.plugins/org.eclipse.team.cvs.core/.running
/.plugins/org.eclipse.ui.workbench/workbench.xml
/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.egit.ui.prefs
/.plugins/org.eclipse.m2e.core/nexus/
/.plugins/org.eclipse.m2e.core/workspaceState.ser
/.plugins/org.eclipse.debug.core/.launches/
/.plugins/org.eclipse.debug.ui/launchConfigurationHistory.xml
/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.mylyn.java.ui.prefs
dialog_settings.xml
/.plugins/org.eclipse.core.resources
/.plugins/org.eclipse.recommenders.rcp
/.plugins/org.eclipse.e4.workbench/workbench.xmi
/.plugins/org.eclipse.recommenders.completion.rcp.calls
/.plugins/org.eclipse.recommenders.completion.rcp.overrides
/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs
/.plugins/org.eclipse.wst.sse.core
我的提示是,你看看每次关闭日食后会发生什么变化。这有助于我创建这个gitignore文件,它比插件更好。