| OLD | NEW |
| 1 # Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 """Gclient-specific SCM-specific operations.""" | 5 """Gclient-specific SCM-specific operations.""" |
| 6 | 6 |
| 7 import logging | 7 import logging |
| 8 import os | 8 import os |
| 9 import posixpath | 9 import posixpath |
| 10 import re | 10 import re |
| (...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 786 # TODO(maruel): TEST ME ! | 786 # TODO(maruel): TEST ME ! |
| 787 command = ["switch", "--relocate", | 787 command = ["switch", "--relocate", |
| 788 from_info['Repository Root'], | 788 from_info['Repository Root'], |
| 789 to_info['Repository Root'], | 789 to_info['Repository Root'], |
| 790 self.relpath] | 790 self.relpath] |
| 791 scm.SVN.Run(command, self._root_dir) | 791 scm.SVN.Run(command, self._root_dir) |
| 792 from_info['URL'] = from_info['URL'].replace( | 792 from_info['URL'] = from_info['URL'].replace( |
| 793 from_info['Repository Root'], | 793 from_info['Repository Root'], |
| 794 to_info['Repository Root']) | 794 to_info['Repository Root']) |
| 795 else: | 795 else: |
| 796 if scm.SVN.CaptureStatus(checkout_path) and not options.force: | 796 if not options.force: |
| 797 raise gclient_utils.Error("Can't switch the checkout to %s; UUID " | 797 # Look for local modifications but ignore unversioned files. |
| 798 "don't match and there is local changes " | 798 for status in scm.SVN.CaptureStatus(checkout_path): |
| 799 "in %s. Delete the directory and " | 799 if status[0] != '?': |
| 800 "try again." % (url, checkout_path)) | 800 raise gclient_utils.Error( |
| 801 ('Can\'t switch the checkout to %s; UUID don\'t match and ' |
| 802 'there is local changes in %s. Delete the directory and ' |
| 803 'try again.') % (url, checkout_path)) |
| 801 # Ok delete it. | 804 # Ok delete it. |
| 802 print("\n_____ switching %s to a new checkout" % self.relpath) | 805 print("\n_____ switching %s to a new checkout" % self.relpath) |
| 803 gclient_utils.RemoveDirectory(checkout_path) | 806 gclient_utils.RemoveDirectory(checkout_path) |
| 804 # We need to checkout. | 807 # We need to checkout. |
| 805 command = ['checkout', url, checkout_path] | 808 command = ['checkout', url, checkout_path] |
| 806 command = self.AddAdditionalFlags(command, options, revision) | 809 command = self.AddAdditionalFlags(command, options, revision) |
| 807 scm.SVN.RunAndGetFileList(options, command, self._root_dir, file_list) | 810 scm.SVN.RunAndGetFileList(options, command, self._root_dir, file_list) |
| 808 return | 811 return |
| 809 | 812 |
| 810 | 813 |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 934 command should be a list of strings that represents an svn command. | 937 command should be a list of strings that represents an svn command. |
| 935 | 938 |
| 936 This method returns a new list to be used as a command.""" | 939 This method returns a new list to be used as a command.""" |
| 937 new_command = command[:] | 940 new_command = command[:] |
| 938 if revision: | 941 if revision: |
| 939 new_command.extend(['--revision', str(revision).strip()]) | 942 new_command.extend(['--revision', str(revision).strip()]) |
| 940 # --force was added to 'svn update' in svn 1.5. | 943 # --force was added to 'svn update' in svn 1.5. |
| 941 if options.force and scm.SVN.AssertVersion("1.5")[0]: | 944 if options.force and scm.SVN.AssertVersion("1.5")[0]: |
| 942 new_command.append('--force') | 945 new_command.append('--force') |
| 943 return new_command | 946 return new_command |
| OLD | NEW |