| Index: gclient_scm.py
|
| ===================================================================
|
| --- gclient_scm.py (revision 43902)
|
| +++ gclient_scm.py (working copy)
|
| @@ -97,8 +97,8 @@
|
| if file_list is None:
|
| file_list = []
|
|
|
| - commands = ['cleanup', 'export', 'update', 'revert', 'revinfo',
|
| - 'status', 'diff', 'pack', 'runhooks']
|
| + commands = ['cleanup', 'export', 'update', 'updatesingle', 'revert',
|
| + 'revinfo', 'status', 'diff', 'pack', 'runhooks']
|
|
|
| if not command in commands:
|
| raise gclient_utils.Error('Unknown command %s' % command)
|
| @@ -746,6 +746,20 @@
|
| command.extend(['--revision', str(revision)])
|
| scm.SVN.RunAndGetFileList(options, command, self._root_dir, file_list)
|
|
|
| + def updatesingle(self, options, args, file_list):
|
| + checkout_path = os.path.join(self._root_dir, self.relpath)
|
| + filename = args.pop()
|
| + if not os.path.exists(checkout_path):
|
| + # Create an empty checkout and then update the one file we want. Future
|
| + # operations will only apply to the one file we checked out.
|
| + command = ["checkout", "--depth", "empty", self.url, checkout_path]
|
| + scm.SVN.Run(command, self._root_dir)
|
| + command = ["update", filename]
|
| + scm.SVN.RunAndGetFileList(options, command, checkout_path, file_list)
|
| + # After the initial checkout, we can use update as if it were any other
|
| + # dep.
|
| + self.update(options, args, file_list)
|
| +
|
| def revert(self, options, args, file_list):
|
| """Reverts local modifications. Subversion specific.
|
|
|
|
|