gpt4 book ai didi

eclipse 工作区同步设置 - 同步什么?

转载 作者:行者123 更新时间:2023-12-04 02:02:53 24 4
gpt4 key购买 nike

我知道它已经一次又一次地出现,但我的具体问题是:我有多个使用 wpt、cdt 和 jdt 扩展(和其他扩展)的工作区。我想创建从所有工作区到设置文件子集的硬链接(hard link)(我在 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 文件夹,因为它包含特定于工作空间的数据。
  • 会不会是保险箱够了硬链接(hard link)\.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
  • 切换到新分支

    启动我的一个工作区,导出所有设置,然后启动 test工作区并导入它们。在 Beyond Compare 的帮助下比较了工作空间的 .metadata/目录。 .metadata\.plugins\org.eclipse.core.runtime\.settings\除了 org.eclipse.ui.workbench.prefs 之外的文件夹相同文件 - 但差异似乎并不重要(即特定于工作区)。在关闭工作区时,文件 org.eclipse.jdt.launching.prefs也被修改了。切换到 master 并在我的其他工作区重复。


  • 有并发症 - 例如:
  • 文件 org.eclipse.jdt.core.prefs出现在 test工作区,而在原始工作区(从我导入)有(二进制相同)org.eclipse.jdt.core.prefs.bak .
  • 文件org.eclipse.pde.core.prefs未导入
  • 文件 org.eclipse.jdt.launching.prefsorg.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* 变量保持原样)和 org.eclipse.jdt.launching.prefs在关闭 Eclipse 时进行编辑。

    还有其他复杂情况,例如包含项目引用的文件:
  • 例如,文件 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 dir 将被复制(我猜只要它有 .prefs 后缀)。这需要另一个错误报告。

    在其他包含工作区特定选项的文件中也会遇到类似的情况 - 如 org.eclipse.ui.ide.prefs其中包含对工作集的引用——它们是特定于工作空间的——或者在 org.eclipse.ui.browser.prefs 中其中包含 internalWebBrowserHistory - 通常也是特定于工作区的。

    无论如何,我决定使用硬链接(hard link)——所以我规范了我的偏好(从一个新的工作区开始会容易得多)并复制了除 org.eclipse.wst.sse.core.prefs 之外的所有设置。 , cdtorg.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 会破坏硬链接(hard link)。我尝试了软链接(soft link)( mklink %WORKSPACE_SETTINGS_DIR%\%%G %SETTINGS_DIR%\%%G),但也没有任何乐趣。

    最后

    我不得不硬链接(hard link)(连接)整个设置目录(连同我提到的所有有问题的文件)——这真的不是一个解决方案。在这些日子里,必须解决这种情况。无论如何这里是 .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

    我会根据需要更新这篇文章

    关于eclipse 工作区同步设置 - 同步什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334150/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com