我有以下简化设置:
~/Development/Repositories/ProjectA-trunk
~/Development/Repositories/ProjectA-branch
~/Development/workspace
~/Development/workspace/ProjectA
ProjectA是../Repositories/ProjectA-trunk的符号链接。在理想的世界中,我可以将链接切换到指向../Repositories/ProjectA-branch,然后在Eclipse中刷新项目并在分支上工作。
在这个不幸的现实世界Eclipse中,尽管最初在导入现有项目时说的是,但是解析符号链接并在“ProjectA”的属性>资源>位置中保留项目的绝对路径,在这种情况下〜 /开发/库/项目A-树干。因此,切换符号链接没有任何效果,因为Eclipse现在认为ProjectA位于〜/ Development / Repositories / ProjectA-trunk而不是〜/ Development / Repositories / ProjectA。
是否有人有关于如何设置工作区的解决方案或解决方法或建议,以便与这样的分支机构合作?
答案 0 :(得分:6)
最初导入项目(假设当前不存在~/Development/workspace/ProjectA
):
mv ~/Development/Repositories/ProjectA-trunk ~/Development/workspace/ProjectA
~/Development/workspace/ProjectA
导入Eclipse mv ~/Development/workspace/ProjectA ~/Development/Repositories/ProjectA-trunk
ln -s ~/Development/Repositories/ProjectA-trunk ~/Development/workspace/ProjectA
每当你想改变分支时:
ln -Tfs $BRANCH ~/Development/workspace/ProjectA
答案 1 :(得分:0)
符号链接设置适用于Mac OS和Eclipse(Indigo和Juno)。
robert@pferdeapfel:~> ls -l ~/Documents/workspace/
total 8.0K
lrwxr-xr-x 1 robert staff 33 Dec 27 14:05 TheProject -> /Users/robert/prj/foo/Java
其中foo是我想要使用的任何工作副本的符号链接。
robert@pferdeapfel:~> ls -ld ~/prj/foo
lrwxr-xr-x 1 robert staff 5 Dec 27 13:47 /Users/robert/prj/foo -> trunk
切换时,我rm ~/prj/foo
和ln -s
另一个工作副本到foo。在Eclipse中刷新并获取更改。
这里的诀窍是我的项目只部分在Java中,即我有工作副本主文件夹(foo),下面是Java,Perl,Postgres等等。当我链接到主文件夹(即~/Documents/workspace/TheProject -> ~/prj/foo
)时,Eclipse会在导入时解析符号链接,并将生成的路径存储在项目属性中。只有当我在项目中使用符号链接到Java文件夹(~/Documents/workspace/TheProject -> ~/prj/foo/Java
时,Eclipse才会保留符号链接。
当您拥有相同分支/主干的不同工作副本并需要在它们之间切换时,整个符号链接内容非常有用。 Eclipse无法两次处理相同的项目名称。我不想丢失我的工作副本更改。因此符号链接。
答案 2 :(得分:0)
您可以通过在现有工作区上创建存储库来完成相同的任务。 Eclipse使用工作空间中的.metadata
文件夹来确定存在哪些项目。然后将您的分支放在同一目录中(例如使用git)。任何时候你想要切换分支git checkout my_branch
然后在Eclipse中刷新。
换句话说,不要使用链接,使用git
来管理同一目录中的分支。
编辑:完整的程序就是这样的。在Eclipse之外克隆repo(因为如果它在你的工作区中,导入会唠叨你)。导入您的工作区。删除工作区内的文件夹,并将repo克隆到工作区中。