Index: gclient_scm.py |
diff --git a/gclient_scm.py b/gclient_scm.py |
index cb8e6f31746403e63f9f3fa17e16102cc23cacfd..dd871c10d21f5a3fabe729d51aca7133050baa2e 100644 |
--- a/gclient_scm.py |
+++ b/gclient_scm.py |
@@ -391,6 +391,14 @@ |
if managed: |
self._DisableHooks() |
+ |
+ if gclient_utils.IsDateRevision(revision): |
+ # Date-revisions only work on git-repositories if the reflog hasn't |
+ # expired yet. Use rev-list to get the corresponding revision. |
+ # git rev-list -n 1 --before='time-stamp' branchname |
+ if options.transitive: |
+ self.Print('Warning: --transitive only works for SVN repositories.') |
+ revision = default_rev |
rev_str = ' at %s' % revision |
files = [] if file_list is not None else None |
@@ -1484,6 +1492,12 @@ |
self.Print('You can pass --force to enable automatic removal.') |
raise e |
+ # Retrieve the current HEAD version because svn is slow at null updates. |
+ if options.manually_grab_svn_rev and not revision: |
+ from_info_live = scm.SVN.CaptureRemoteInfo(from_info['URL']) |
+ revision = str(from_info_live['Revision']) |
+ rev_str = ' at %s' % revision |
+ |
if from_info['URL'].rstrip('/') != base_url.rstrip('/'): |
# The repository url changed, need to switch. |
try: |
@@ -1713,6 +1727,10 @@ |
new_command.append('--force') |
if command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: |
new_command.extend(('--accept', 'theirs-conflict')) |
+ elif options.manually_grab_svn_rev: |
+ new_command.append('--force') |
+ if command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: |
+ new_command.extend(('--accept', 'postpone')) |
elif command[0] != 'checkout' and scm.SVN.AssertVersion('1.6')[0]: |
new_command.extend(('--accept', 'postpone')) |
return new_command |