summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Client/Tools/VCS.py
diff options
context:
space:
mode:
authorDongInn Kim <dikim@cs.indiana.edu>2013-03-24 14:44:15 -0400
committerDongInn Kim <dikim@cs.indiana.edu>2013-03-24 14:44:15 -0400
commit39a639a33048178d98c4b3f7972589b45afd3151 (patch)
treef57463ef51f709ed070e8629be6681cbc14bce8b /src/lib/Bcfg2/Client/Tools/VCS.py
parent395e7c29981779113d1c9d83f341a967d093eade (diff)
downloadbcfg2-39a639a33048178d98c4b3f7972589b45afd3151.tar.gz
bcfg2-39a639a33048178d98c4b3f7972589b45afd3151.tar.bz2
bcfg2-39a639a33048178d98c4b3f7972589b45afd3151.zip
Make the "latest" value of the "revision" attribute update the working
copy only when the working copy is not updated to the latest revision.
Diffstat (limited to 'src/lib/Bcfg2/Client/Tools/VCS.py')
-rw-r--r--src/lib/Bcfg2/Client/Tools/VCS.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Client/Tools/VCS.py b/src/lib/Bcfg2/Client/Tools/VCS.py
index 1ab867215..66e76f566 100644
--- a/src/lib/Bcfg2/Client/Tools/VCS.py
+++ b/src/lib/Bcfg2/Client/Tools/VCS.py
@@ -103,13 +103,20 @@ class VCS(Bcfg2.Client.Tools.Tool):
def Verifysvn(self, entry, _):
"""Verify svn repositories"""
+ headrev = pysvn.Revision( pysvn.opt_revision_kind.head )
client = pysvn.Client()
try:
cur_rev = str(client.info(entry.get('name')).revision.number)
+ server = client.info2(entry.get('sourceurl'), headrev, recurse=False)
+ if server:
+ server_rev = str(server[0][1].rev.number)
except:
self.logger.info("Repository %s does not exist" % entry.get('name'))
return False
+ if entry.get('revision') == 'latest' and cur_rev == server_rev:
+ return True
+
if cur_rev != entry.get('revision'):
self.logger.info("At revision %s need to go to revision %s" %
(cur_rev, entry.get('revision')))