我知道它一次又一次出现但我的具体问题是:我有多个工作区使用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
Run Code Online (Sandbox Code Playgroud)
我相信我不应该尝试链接整个.metadata/.plugins文件夹,因为它包含特定于工作空间的数据.
将目录硬链接是否安全且足够\.metadata\.plugins\org.eclipse.core.runtime\.settings?
有人能指出一些关于里面的所有内容.index和.dat二进制文件的文档\.metadata\.plugins\吗?
如果无法做到这一点我希望至少在不同的参考.prefs中的文件\.metadata\.plugins\*\.settings目录,尤其是.metadata\.plugins\org.eclipse.core.runtime\.settings一个
谢谢
好吧,我所做的(在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
Run Code Online (Sandbox Code Playgroud)切换到一个新的分支
启动我的一个工作区,导出所有设置然后启动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
Run Code Online (Sandbox Code Playgroud)
在导入设置(在新工作区中)时创建,.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在关闭eclipse时编辑.
还有其他复杂问题,例如包含项目引用的文件
例如,该文件org.eclipse.wst.sse.core.prefs包含工作区中的项目名称 - 我将其报告为一个错误(修复得非常快!).
CDT创建了一堆文件,如:
.settings/org.eclipse.cdt.core.prj-<projectName>.prefs
.settings/org.eclipse.cdt.ui.prj-<projectName>.prefs
Run Code Online (Sandbox Code Playgroud)在出口/进口方面盲目同步.这实际上是一个比前一个更复杂的情况 - 也报告了它.
事实上,你在.settingsdir中拥有的任何内容都将被复制(我想只要它有一个.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
Run Code Online (Sandbox Code Playgroud)
为我的工作区.
猜猜看: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
Run Code Online (Sandbox Code Playgroud)
我会根据需要更新这篇文章
您还可以查看工作区机制,这是一个由谷歌开发的小插件:http://code.google.com/a/eclipselabs.org/p/workspacemechanic/
更新2012年11月28日
所以据我所知,你需要保持一些插件首选项的同步.
在维基解释了它相当不错.我推荐你的步骤如下:
有了它,您应该能够处理同步您的工作区首选项.
奖励:我喜欢将工作区机制首选项放在dropbox上,以便在团队成员之间和/或我的计算机之间共享,您可以在这里找到一个小方法:https://gist.github.com/3090900
希望这可以帮助.
问候
| 归档时间: |
|
| 查看次数: |
5409 次 |
| 最近记录: |