diff options
Diffstat (limited to 'project.py')
-rw-r--r-- | project.py | 49 |
1 files changed, 28 insertions, 21 deletions
@@ -1102,30 +1102,37 @@ class Project(object): | |||
1102 | msg = 'manifest set to %s' % self.revisionExpr | 1102 | msg = 'manifest set to %s' % self.revisionExpr |
1103 | self.bare_git.symbolic_ref('-m', msg, ref, dst) | 1103 | self.bare_git.symbolic_ref('-m', msg, ref, dst) |
1104 | 1104 | ||
1105 | def _InitWorkTree(self): | 1105 | def _LinkWorkTree(self, relink=False): |
1106 | dotgit = os.path.join(self.worktree, '.git') | 1106 | dotgit = os.path.join(self.worktree, '.git') |
1107 | if not os.path.exists(dotgit): | 1107 | if not relink: |
1108 | os.makedirs(dotgit) | 1108 | os.makedirs(dotgit) |
1109 | 1109 | ||
1110 | for name in ['config', | 1110 | for name in ['config', |
1111 | 'description', | 1111 | 'description', |
1112 | 'hooks', | 1112 | 'hooks', |
1113 | 'info', | 1113 | 'info', |
1114 | 'logs', | 1114 | 'logs', |
1115 | 'objects', | 1115 | 'objects', |
1116 | 'packed-refs', | 1116 | 'packed-refs', |
1117 | 'refs', | 1117 | 'refs', |
1118 | 'rr-cache', | 1118 | 'rr-cache', |
1119 | 'svn']: | 1119 | 'svn']: |
1120 | try: | 1120 | try: |
1121 | src = os.path.join(self.gitdir, name) | 1121 | src = os.path.join(self.gitdir, name) |
1122 | dst = os.path.join(dotgit, name) | 1122 | dst = os.path.join(dotgit, name) |
1123 | os.symlink(relpath(src, dst), dst) | 1123 | if relink: |
1124 | except OSError, e: | 1124 | os.remove(dst) |
1125 | if e.errno == errno.EPERM: | 1125 | os.symlink(relpath(src, dst), dst) |
1126 | raise GitError('filesystem must support symlinks') | 1126 | except OSError, e: |
1127 | else: | 1127 | if e.errno == errno.EPERM: |
1128 | raise | 1128 | raise GitError('filesystem must support symlinks') |
1129 | else: | ||
1130 | raise | ||
1131 | |||
1132 | def _InitWorkTree(self): | ||
1133 | dotgit = os.path.join(self.worktree, '.git') | ||
1134 | if not os.path.exists(dotgit): | ||
1135 | self._LinkWorkTree() | ||
1129 | 1136 | ||
1130 | _lwrite(os.path.join(dotgit, HEAD), '%s\n' % self.GetRevisionId()) | 1137 | _lwrite(os.path.join(dotgit, HEAD), '%s\n' % self.GetRevisionId()) |
1131 | 1138 | ||