From 39a639a33048178d98c4b3f7972589b45afd3151 Mon Sep 17 00:00:00 2001 From: DongInn Kim Date: Sun, 24 Mar 2013 14:44:15 -0400 Subject: Make the "latest" value of the "revision" attribute update the working copy only when the working copy is not updated to the latest revision. --- src/lib/Bcfg2/Client/Tools/VCS.py | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/lib/Bcfg2/Client') 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'))) -- cgit v1.2.3-1-g7c22