Show More
@@ -678,7 +678,14 b' class gitsubrepo(object):' | |||
|
678 | 678 | def get(self, state): |
|
679 | 679 | source, revision, kind = state |
|
680 | 680 | self._fetch(source, revision) |
|
681 | # if the repo was set to be bare, unbare it | |
|
682 | if self._gitcommand(['config', '--get', 'core.bare'] | |
|
683 | ).strip() == 'true': | |
|
684 | self._gitcommand(['config', 'core.bare', 'false']) | |
|
681 | 685 | if self._gitstate() == revision: |
|
686 | self._gitcommand(['reset', '--hard', 'HEAD']) | |
|
687 | return | |
|
688 | elif self._gitstate() == revision: | |
|
682 | 689 | return |
|
683 | 690 | current, bm = self._gitbranchmap() |
|
684 | 691 | if revision not in bm: |
@@ -742,6 +749,24 b' class gitsubrepo(object):' | |||
|
742 | 749 | 'nothing to push') % self._relpath) |
|
743 | 750 | return False |
|
744 | 751 | |
|
752 | def remove(self): | |
|
753 | if self.dirty(): | |
|
754 | self._ui.warn(_('not removing repo %s because ' | |
|
755 | 'it has changes.\n') % self._path) | |
|
756 | return | |
|
757 | # we can't fully delete the repository as it may contain | |
|
758 | # local-only history | |
|
759 | self._ui.note(_('removing subrepo %s\n') % self._path) | |
|
760 | self._gitcommand(['config', 'core.bare', 'true']) | |
|
761 | for f in os.listdir(self._path): | |
|
762 | if f == '.git': | |
|
763 | continue | |
|
764 | path = os.path.join(self._path, f) | |
|
765 | if os.path.isdir(path) and not os.path.islink(path): | |
|
766 | shutil.rmtree(path) | |
|
767 | else: | |
|
768 | os.remove(path) | |
|
769 | ||
|
745 | 770 | types = { |
|
746 | 771 | 'hg': hgsubrepo, |
|
747 | 772 | 'svn': svnsubrepo, |
@@ -175,3 +175,21 b' user a pulls, merges, commits' | |||
|
175 | 175 | adding manifests |
|
176 | 176 | adding file changes |
|
177 | 177 | added 2 changesets with 2 changes to 1 files |
|
178 | ||
|
179 | update to a revision without the subrepo, keeping the local git repository | |
|
180 | ||
|
181 | $ cd ../t | |
|
182 | $ hg up 0 | |
|
183 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
|
184 | $ ls s -a | |
|
185 | . | |
|
186 | .. | |
|
187 | .git | |
|
188 | ||
|
189 | $ hg up 2 | |
|
190 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
191 | $ ls s -a | |
|
192 | . | |
|
193 | .. | |
|
194 | .git | |
|
195 | g |
General Comments 0
You need to be logged in to leave comments.
Login now