mirror of
https://github.com/Dev-Wiki/git-repo.git
synced 2025-12-14 00:24:05 +08:00
Add 'dest-path' to extend-project to support changing path
This allows us to move the repository to a new location in the source tree without having to remove-project + add a new project tag. Change-Id: I4dba6151842e57f6f2b8fe60cda260ecea68b7b4 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/310962 Reviewed-by: Mike Frysinger <vapier@google.com> Tested-by: Michael Kelly <mkelly@arista.com>
This commit is contained in:
39
project.py
39
project.py
@@ -519,13 +519,7 @@ class Project(object):
|
||||
self.client = self.manifest = manifest
|
||||
self.name = name
|
||||
self.remote = remote
|
||||
self.gitdir = gitdir.replace('\\', '/')
|
||||
self.objdir = objdir.replace('\\', '/')
|
||||
if worktree:
|
||||
self.worktree = os.path.normpath(worktree).replace('\\', '/')
|
||||
else:
|
||||
self.worktree = None
|
||||
self.relpath = relpath
|
||||
self.UpdatePaths(relpath, worktree, gitdir, objdir)
|
||||
self.revisionExpr = revisionExpr
|
||||
|
||||
if revisionId is None \
|
||||
@@ -556,16 +550,6 @@ class Project(object):
|
||||
self.copyfiles = []
|
||||
self.linkfiles = []
|
||||
self.annotations = []
|
||||
self.config = GitConfig.ForRepository(gitdir=self.gitdir,
|
||||
defaults=self.client.globalConfig)
|
||||
|
||||
if self.worktree:
|
||||
self.work_git = self._GitGetByExec(self, bare=False, gitdir=gitdir)
|
||||
else:
|
||||
self.work_git = None
|
||||
self.bare_git = self._GitGetByExec(self, bare=True, gitdir=gitdir)
|
||||
self.bare_ref = GitRefs(gitdir)
|
||||
self.bare_objdir = self._GitGetByExec(self, bare=True, gitdir=objdir)
|
||||
self.dest_branch = dest_branch
|
||||
self.old_revision = old_revision
|
||||
|
||||
@@ -573,6 +557,27 @@ class Project(object):
|
||||
# project containing repo hooks.
|
||||
self.enabled_repo_hooks = []
|
||||
|
||||
def UpdatePaths(self, relpath, worktree, gitdir, objdir):
|
||||
"""Update paths used by this project"""
|
||||
self.gitdir = gitdir.replace('\\', '/')
|
||||
self.objdir = objdir.replace('\\', '/')
|
||||
if worktree:
|
||||
self.worktree = os.path.normpath(worktree).replace('\\', '/')
|
||||
else:
|
||||
self.worktree = None
|
||||
self.relpath = relpath
|
||||
|
||||
self.config = GitConfig.ForRepository(gitdir=self.gitdir,
|
||||
defaults=self.manifest.globalConfig)
|
||||
|
||||
if self.worktree:
|
||||
self.work_git = self._GitGetByExec(self, bare=False, gitdir=self.gitdir)
|
||||
else:
|
||||
self.work_git = None
|
||||
self.bare_git = self._GitGetByExec(self, bare=True, gitdir=self.gitdir)
|
||||
self.bare_ref = GitRefs(self.gitdir)
|
||||
self.bare_objdir = self._GitGetByExec(self, bare=True, gitdir=self.objdir)
|
||||
|
||||
@property
|
||||
def Derived(self):
|
||||
return self.is_derived
|
||||
|
||||
Reference in New Issue
Block a user