Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(660)

Unified Diff: testing_support/fake_repos.py

Issue 250523004: Added remote 'git' branch awareness to 'gclient' (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: testing_support/fake_repos.py
diff --git a/testing_support/fake_repos.py b/testing_support/fake_repos.py
index 25e3a9be1c1be6b4ec8415a23f56214e15e979d5..3c5ac54fdbaa8d8e3f9c68edaadeba235c54dbb6 100755
--- a/testing_support/fake_repos.py
+++ b/testing_support/fake_repos.py
@@ -88,6 +88,22 @@ def commit_svn(repo, usr, pwd):
logging.debug('At revision %s' % rev)
return rev
+def update_ref_git(repo, ref, oldvalue, newvalue=None):
+ args = ['git', 'update-ref', ref, oldvalue]
+ if newvalue is not None:
+ args.append(newvalue)
+ subprocess2.check_call(args, cwd=repo)
+
+def checkout_git(repo, branch=None):
+ """Checks out (creating, if necessary) the target branch."""
+ if branch is None:
+ branch = 'master'
+ returncode = subprocess2.call(['git', 'show-ref', '-q', branch], cwd=repo)
+ if returncode == 0:
+ subprocess2.check_call(['git', 'checkout', '-q', branch], cwd=repo)
+ else:
+ subprocess2.check_call(['git', 'checkout', '-q', '-B', branch], cwd=repo)
+ return branch
def commit_git(repo):
"""Commits the changes and returns the new hash."""
@@ -408,10 +424,16 @@ class FakeReposBase(object):
'--password', self.USERS[0][1],
'--non-interactive'])
- def _commit_git(self, repo, tree):
+ def _update_ref_git(self, repo, ref, oldvalue, newvalue=None):
repo_root = join(self.git_root, repo)
+ update_ref_git(repo_root, ref, oldvalue, newvalue=newvalue)
+
+ def _commit_git(self, repo, tree, branch=None):
+ repo_root = join(self.git_root, repo)
+ checkout_git(repo_root, branch)
self._genTree(repo_root, tree)
commit_hash = commit_git(repo_root)
+ checkout_git(repo_root)
if self.git_hashes[repo][-1]:
new_tree = self.git_hashes[repo][-1][1].copy()
new_tree.update(tree)
@@ -439,7 +461,7 @@ class FakeReposBase(object):
class FakeRepos(FakeReposBase):
"""Implements populateSvn() and populateGit()."""
- NB_GIT_REPOS = 5
+ NB_GIT_REPOS = 6
def populateSvn(self):
"""Creates a few revisions of changes including DEPS files."""
@@ -706,6 +728,14 @@ pre_deps_hooks = [
'origin': 'git/repo_5@3\n',
})
+ # repo_6: basic repository that exists in a non-default Gerrit-like
+ # location on remote
+ self._commit_git('repo_6', {'origin': 'git/repo_6@1\n'})
+ self._commit_git('repo_6', {'origin': 'git/repo_6@alternate\n'},
+ branch='alternate')
+ self._update_ref_git('repo_6', 'refs/changes/12/1', 'alternate')
+ self._commit_git('repo_6', {'origin': 'git/repo_6@2\n'})
+
class FakeRepoTransitive(FakeReposBase):
"""Implements populateSvn()"""
« gclient_scm.py ('K') | « gclient_scm.py ('k') | tests/gclient_scm_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698