Support copy/move of workspace if Git repository is under workspace
commit71d222e1e23e1579ebde825fe84053fae2f8ea97
authorMatthias Sohn <matthias.sohn@sap.com>
Thu, 3 Mar 2016 23:39:03 +0000 (4 00:39 +0100)
committerMatthias Sohn <matthias.sohn@sap.com>
Mon, 14 Mar 2016 23:24:07 +0000 (15 00:24 +0100)
treeb0200ffe956e27edb4f3ccf3c099646496bf8903
parente47bced605873c5e82705f9a8184f540d1dbb586
Support copy/move of workspace if Git repository is under workspace

If git repositories are located under the workspace path moving or
copying the workspace broke the repository path information in
.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.egit.core.prefs
since all repository paths were stored as absolute paths and paths
of repositories located under the moved or copied workspace weren't
matching this persisted paths anymore.

Fix this by storing the repository path relative to the workspace root
if a repository path is located under the workspace root. For
repositories not located under the workspace root still store the
absolute path since otherwise their path would break if the workspace is
moved or copied. Store this in a new preference and still maintain the
old preference with list of absolute repository paths in order to ensure
compatibility with older EGit versions.

Bug: 358285
Change-Id: Ib73b76eb1d63587a767fec59c076fbe51c75e2f1
Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
org.eclipse.egit.core/src/org/eclipse/egit/core/RepositoryUtil.java
org.eclipse.egit.ui.test/src/org/eclipse/egit/ui/view/repositories/GitRepositoriesViewTestBase.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/rebase/RebaseInteractiveView.java
org.eclipse.egit.ui/src/org/eclipse/egit/ui/internal/staging/StagingView.java