# FIXME: this should be recursive deletion
self.ftp.rmd(path)
except ftplib.error_perm, detail:
- print >> sys.stderr, "FTP warning:", detail
+ print >> sys.stderr, "FTP warning:", detail, path
def _delete(self, path):
try:
#print >> sys.stderr, path
self.ftp.delete(path)
except ftplib.error_perm, detail:
- print >> sys.stderr, "FTP warning:", detail, self.dest_path
+ print >> sys.stderr, "FTP warning:", detail, path
class LocalSync(Syncer):
print
print "Selftest succeeded!"
+def update_ref(hash):
+ remote = "ftp"
+ branch = "master"
+ if (not os.path.exists("refs/remotes/"+remote)):
+ os.makedirs("refs/remotes/"+remote)
+ file("refs/remotes/"+remote+"/"+branch, "w").write(newrev+"\n")
+
def build_change_list(changes, oldrev, newrev):
# Read changes
gitdiff = Popen("/usr/bin/git diff --name-status %s %s"%(oldrev, newrev),
for line in sys.stdin:
(oldrev, newrev, refname) = line.split()
if refname == "refs/heads/master":
+ try:
+ oldrev=file("refs/remotes/ftp/master").readline().strip();
+ except IOError:
+ pass
build_change_list(changes, oldrev, newrev)
if not changes:
syncer.close()
except ftplib.all_errors, detail:
- print >> sys.stderr, "FTP error: ", detail
+ print >> sys.stderr, "FTP synchronization error: ", detail
+ print >> sys.stderr, "I will try it next time again"
sys.exit(1)
-
-
+
+# If succeessfull, update remote ref
+update_ref(newrev)