Index: gclient-new-workdir.py |
diff --git a/gclient-new-workdir.py b/gclient-new-workdir.py |
index 6c241c50b204480a10c1ed14bee441a1e41b774b..c469824753ec587771dd1bdf8da1e4dc7aefb67e 100755 |
--- a/gclient-new-workdir.py |
+++ b/gclient-new-workdir.py |
@@ -13,6 +13,8 @@ import subprocess |
import sys |
import textwrap |
+import git_common |
+ |
def print_err(msg): |
print >> sys.stderr, msg |
@@ -32,7 +34,7 @@ def usage(msg=None): |
<repository> should contain a .gclient file |
<new_workdir> must not exist |
- ''' % os.path.basename(sys.argv[0]) |
+ '''% os.path.basename(sys.argv[0]) |
print_err(textwrap.dedent(usage_msg)) |
sys.exit(1) |
@@ -70,43 +72,11 @@ def main(): |
for root, dirs, _ in os.walk(repository): |
if '.git' in dirs: |
workdir = root.replace(repository, new_workdir, 1) |
- make_workdir(os.path.join(root, '.git'), |
- os.path.join(workdir, '.git')) |
- |
- |
-def make_workdir(repository, new_workdir): |
- print('Creating: ' + new_workdir) |
- os.makedirs(new_workdir) |
- |
- GIT_DIRECTORY_WHITELIST = [ |
- 'config', |
- 'info', |
- 'hooks', |
- 'logs/refs', |
- 'objects', |
- 'packed-refs', |
- 'refs', |
- 'remotes', |
- 'rr-cache', |
- 'svn' |
- ] |
- |
- for entry in GIT_DIRECTORY_WHITELIST: |
- make_symlink(repository, new_workdir, entry) |
- |
- shutil.copy2(os.path.join(repository, 'HEAD'), |
- os.path.join(new_workdir, 'HEAD')) |
- subprocess.check_call(['git', 'checkout', '-f'], |
- cwd=new_workdir.rstrip('.git')) |
- |
- |
-def make_symlink(repository, new_workdir, link): |
- if not os.path.exists(os.path.join(repository, link)): |
- return |
- link_dir = os.path.dirname(os.path.join(new_workdir, link)) |
- if not os.path.exists(link_dir): |
- os.makedirs(link_dir) |
- os.symlink(os.path.join(repository, link), os.path.join(new_workdir, link)) |
+ print('Creating: %s' % workdir) |
+ git_common.make_workdir(os.path.join(root, '.git'), |
+ os.path.join(workdir, '.git')) |
+ subprocess.check_call(['git', 'checkout', '-f'], |
+ cwd=new_workdir.rstrip('.git')) |
if __name__ == '__main__': |