OLD | NEW |
1 # Copyright (c) 2009, 2010, 2011 Google Inc. All rights reserved. | 1 # Copyright (c) 2009, 2010, 2011 Google Inc. All rights reserved. |
2 # Copyright (c) 2009 Apple Inc. All rights reserved. | 2 # Copyright (c) 2009 Apple Inc. All rights reserved. |
3 # | 3 # |
4 # Redistribution and use in source and binary forms, with or without | 4 # Redistribution and use in source and binary forms, with or without |
5 # modification, are permitted provided that the following conditions are | 5 # modification, are permitted provided that the following conditions are |
6 # met: | 6 # met: |
7 # | 7 # |
8 # * Redistributions of source code must retain the above copyright | 8 # * Redistributions of source code must retain the above copyright |
9 # notice, this list of conditions and the following disclaimer. | 9 # notice, this list of conditions and the following disclaimer. |
10 # * Redistributions in binary form must reproduce the above | 10 # * Redistributions in binary form must reproduce the above |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 self._run_git(['rebase', '--abort']) | 110 self._run_git(['rebase', '--abort']) |
111 | 111 |
112 def status_command(self): | 112 def status_command(self): |
113 # git status returns non-zero when there are changes, so we use git diff
name --name-status HEAD instead. | 113 # git status returns non-zero when there are changes, so we use git diff
name --name-status HEAD instead. |
114 # No file contents printed, thus utf-8 autodecoding in self.run is fine. | 114 # No file contents printed, thus utf-8 autodecoding in self.run is fine. |
115 return [self.executable_name, "diff", "--name-status", "--no-renames", "
HEAD"] | 115 return [self.executable_name, "diff", "--name-status", "--no-renames", "
HEAD"] |
116 | 116 |
117 def _status_regexp(self, expected_types): | 117 def _status_regexp(self, expected_types): |
118 return '^(?P<status>[%s])\t(?P<filename>.+)$' % expected_types | 118 return '^(?P<status>[%s])\t(?P<filename>.+)$' % expected_types |
119 | 119 |
120 def add_list(self, paths, return_exit_code=False): | 120 def add_list(self, paths, return_exit_code=False, recurse=True): |
121 return self._run_git(["add"] + paths, return_exit_code=return_exit_code) | 121 return self._run_git(["add"] + paths, return_exit_code=return_exit_code) |
122 | 122 |
123 def delete_list(self, paths): | 123 def delete_list(self, paths): |
124 return self._run_git(["rm", "-f"] + paths) | 124 return self._run_git(["rm", "-f"] + paths) |
125 | 125 |
126 def move(self, origin, destination): | 126 def move(self, origin, destination): |
127 return self._run_git(["mv", "-f", origin, destination]) | 127 return self._run_git(["mv", "-f", origin, destination]) |
128 | 128 |
129 def exists(self, path): | 129 def exists(self, path): |
130 return_code = self._run_git(["show", "HEAD:%s" % path], return_exit_code
=True, decode_output=False) | 130 return_code = self._run_git(["show", "HEAD:%s" % path], return_exit_code
=True, decode_output=False) |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 if self.current_branch() != self._branch_tracking_remote_master(): | 311 if self.current_branch() != self._branch_tracking_remote_master(): |
312 return False | 312 return False |
313 if len(self._local_commits(self._branch_tracking_remote_master())) > 0: | 313 if len(self._local_commits(self._branch_tracking_remote_master())) > 0: |
314 return False | 314 return False |
315 return True | 315 return True |
316 | 316 |
317 def ensure_cleanly_tracking_remote_master(self): | 317 def ensure_cleanly_tracking_remote_master(self): |
318 self._discard_working_directory_changes() | 318 self._discard_working_directory_changes() |
319 self._run_git(['checkout', '-q', self._branch_tracking_remote_master()]) | 319 self._run_git(['checkout', '-q', self._branch_tracking_remote_master()]) |
320 self._discard_local_commits() | 320 self._discard_local_commits() |
OLD | NEW |