]> arthur.barton.de Git - bup.git/blobdiff - cmd-server.py
bup join: continue gracefully if one of the requested files does not exist.
[bup.git] / cmd-server.py
index 7cc78a3fb89e4c32988087aa3513818047eef2b5..e849b451d627d7de5ebdb7b86101ac432883fdb9 100755 (executable)
@@ -118,11 +118,17 @@ def update_ref(conn, refname):
 
 def cat(conn, id):
     git.check_repo_or_die()
-    for blob in git.cat(id):
-        conn.write(struct.pack('!I', len(blob)))
-        conn.write(blob)
-    conn.write('\0\0\0\0')
-    conn.ok()
+    try:
+        for blob in git.cat(id):
+            conn.write(struct.pack('!I', len(blob)))
+            conn.write(blob)
+    except KeyError, e:
+        log('server: error: %s\n' % e)
+        conn.write('\0\0\0\0')
+        conn.error(e)
+    else:
+        conn.write('\0\0\0\0')
+        conn.ok()
 
 
 optspec = """