diff options
| -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 | ||
