diff --git a/gclient.py b/gclient.py index a31491e89..5a40321f1 100755 --- a/gclient.py +++ b/gclient.py @@ -2050,11 +2050,6 @@ def CMDsync(parser, args): help='Don\'t bootstrap from Google Storage.') parser.add_option('--ignore_locks', action='store_true', help='GIT ONLY - Ignore cache locks.') - parser.add_option('--break_repo_locks', action='store_true', - help='GIT ONLY - Forcibly remove repo locks (e.g. ' - 'index.lock). This should only be used if you know for ' - 'certain that this invocation of gclient is the only ' - 'thing operating on the git repos (e.g. on a bot).') parser.add_option('--lock_timeout', type='int', default=5000, help='GIT ONLY - Deadline (in seconds) to wait for git ' 'cache lock to become available. Default is %default.') diff --git a/gclient_scm.py b/gclient_scm.py index 9a6f51234..1aeb69dbf 100644 --- a/gclient_scm.py +++ b/gclient_scm.py @@ -327,27 +327,6 @@ class GitWrapper(SCMWrapper): os.remove(disabled_hook_path) os.rename(os.path.join(hook_dir, f), disabled_hook_path) - def _maybe_break_locks(self, options): - """This removes all .lock files from this repo's .git directory, if the - user passed the --break_repo_locks command line flag. - - In particular, this will cleanup index.lock files, as well as ref lock - files. - """ - if options.break_repo_locks: - git_dir = os.path.join(self.checkout_path, '.git') - for path, _, filenames in os.walk(git_dir): - for filename in filenames: - if filename.endswith('.lock'): - to_break = os.path.join(path, filename) - self.Print('breaking lock: %s' % (to_break,)) - try: - os.remove(to_break) - except OSError as ex: - self.Print('FAILED to break lock: %s: %s' % (to_break, ex)) - raise - - def update(self, options, args, file_list): """Runs git to update or transparently checkout the working copy. @@ -454,8 +433,6 @@ class GitWrapper(SCMWrapper): self.Print('________ unmanaged solution; skipping %s' % self.relpath) return self._Capture(['rev-parse', '--verify', 'HEAD']) - self._maybe_break_locks(options) - if mirror: self._UpdateMirror(mirror, options) diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py index 00592244c..d3fdc684f 100755 --- a/tests/gclient_scm_test.py +++ b/tests/gclient_scm_test.py @@ -133,7 +133,6 @@ class BaseGitWrapperTestCase(GCBaseTestCase, StdoutCheck, TestCaseUtils, self.cache_dir = None self.merge = False self.jobs = 1 - self.break_repo_locks = False self.delete_unversioned_trees = False sample_git_import = """blob @@ -502,36 +501,6 @@ class ManagedGitWrapperTestCase(BaseGitWrapperTestCase): 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 @@ -573,7 +542,6 @@ class ManagedGitWrapperTestCaseMox(BaseTestCase): self.force = force self.reset = False self.nohooks = False - self.break_repo_locks = False # TODO(maruel): Test --jobs > 1. self.jobs = 1