2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
7 mass-rename: update source files (gyp lists, #includes) to reflect
8 a rename. Expects "git diff --cached -M" to list a bunch of renames.
11 1) git mv foo1 bar1; git mv foo2 bar2; etc.
12 2) *without committing*, ./tools/git/mass-rename.py
13 3) look at git diff (without --cached) to see what the damage is
22 BASE_DIR
= os
.path
.abspath(os
.path
.dirname(__file__
))
26 popen
= subprocess
.Popen('git diff --cached --raw -M',
27 shell
=True, stdout
=subprocess
.PIPE
)
28 out
, _
= popen
.communicate()
29 if popen
.returncode
!= 0:
31 for line
in out
.splitlines():
32 parts
= line
.split('\t')
34 print 'Skipping: %s -- not a rename?' % parts
36 attrs
, fro
, to
= parts
37 if attrs
.split()[4].startswith('R'):
38 subprocess
.check_call([
40 os
.path
.join(BASE_DIR
, 'move_source_file.py'),
42 '--no_error_for_non_source_file',
45 print 'Skipping: %s -- not a rename?' % fro
49 if __name__
== '__main__':