Revert of Revert "Add (another) argument to break git locks in gclient." (patchset #1 id:1 of https://codereview.chromium.org/1865403003/ )
Reason for revert:
This revert breaks /everything/
Original issue's description:
> Revert "Add (another) argument to break git locks in gclient."
>
> This reverts commit 51797b1d8f24a26aa7f9c23212e06ed2b6cfc0e9.
>
> BUG=601564
> TBR=iannucci,dpranke,estaab,pgervais
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=299771
TBR=dpranke@google.com,estaab@chromium.org,pgervais@chromium.org,smut@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=601564
Review URL: https://codereview.chromium.org/1867843003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@299773 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index d3fdc68..0059224 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -133,6 +133,7 @@
self.cache_dir = None
self.merge = False
self.jobs = 1
+ self.break_repo_locks = False
self.delete_unversioned_trees = False
sample_git_import = """blob
@@ -501,6 +502,36 @@
sys.stdout.getvalue()
sys.stdout.close()
+ def testUpdateLocked(self):
+ if not self.enabled:
+ return
+ options = self.Options()
+ scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ file_path = join(self.base_path, '.git', 'index.lock')
+ with open(file_path, 'w'):
+ pass
+ with self.assertRaisesRegexp(subprocess2.CalledProcessError,
+ 'Unable to create.*/index.lock'):
+ scm.update(options, (), [])
+ sys.stdout.close()
+
+ def testUpdateLockedBreak(self):
+ if not self.enabled:
+ return
+ options = self.Options()
+ options.break_repo_locks = True
+ scm = gclient_scm.CreateSCM(url=self.url, root_dir=self.root_dir,
+ relpath=self.relpath)
+ file_path = join(self.base_path, '.git', 'index.lock')
+ with open(file_path, 'w'):
+ pass
+ scm.update(options, (), [])
+ self.assertRegexpMatches(sys.stdout.getvalue(),
+ "breaking lock.*\.git/index\.lock")
+ self.assertFalse(os.path.exists(file_path))
+ sys.stdout.close()
+
def testUpdateConflict(self):
if not self.enabled:
return
@@ -542,6 +573,7 @@
self.force = force
self.reset = False
self.nohooks = False
+ self.break_repo_locks = False
# TODO(maruel): Test --jobs > 1.
self.jobs = 1