monotone-commits-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-commits-diffs] net.venge.monotone: c8e81c3ccde0994efec240b0a2


From: code
Subject: [Monotone-commits-diffs] net.venge.monotone: c8e81c3ccde0994efec240b0a2f5f504f899ec64
Date: Mon, 24 Jan 2011 22:10:42 GMT

revision:            c8e81c3ccde0994efec240b0a2f5f504f899ec64
date:                2011-01-24T21:42:33
author:              Richard Levitte <address@hidden>
branch:              net.venge.monotone
changelog:
Have it display branches (and counts) in both directions.


manifest:
format_version "1"

new_manifest [72924416bbc21afdc58e1957bdd1bcd3b55f09d2]

old_revision [0e51dc81a5d9d190e2d71903eff0a75db7eae6e5]

patch "contrib/display_branches.lua"
 from [8d16d67c82652534969e81a9062f019d68c584bf]
   to [5b9602203db9c299e7821b18078786a8a7fe5574]
============================================================
--- contrib/display_branches.lua	8d16d67c82652534969e81a9062f019d68c584bf
+++ contrib/display_branches.lua	5b9602203db9c299e7821b18078786a8a7fe5574
@@ -7,26 +7,31 @@ do
 do
    netsync_branches = {}
 
-   function RL_note_netsync_cert_received(rev_id,key,name,value,nonce)
+   function RL_note_netsync_cert_received(direction,rev_id,key,name,value,nonce)
       if name == "branch" then
-	 if netsync_branches[nonce][value] == nil then
-	    netsync_branches[nonce][value] = 1
+	 if netsync_branches[direction][nonce][value] == nil then
+	    netsync_branches[direction][nonce][value] = 1
 	 else
-	    netsync_branches[nonce][value] = netsync_branches[nonce][value] + 1
+	    netsync_branches[direction][nonce][value] =
+	       netsync_branches[direction][nonce][value] + 1
 	 end
       end
    end
 
    notifier = {
-      start =
+      ["start"] =
 	 function(session_id,...)
-	    netsync_branches[session_id] = {}
+	    netsync_branches["received"] = {}
+	    netsync_branches["sent"] = {}
+	    netsync_branches["received"][session_id] = {}
+	    netsync_branches["sent"][session_id] = {}
 	    return "continue",nil
 	 end,
-      revision_received =
+      ["revision_received"] =
 	 function(new_id,revision,certs,session_id)
 	    for _, item in pairs(certs) do
-	       RL_note_netsync_cert_received(new_id,
+	       RL_note_netsync_cert_received("received",
+					     new_id,
 					     item.key,
 					     item.name,
 					     item.value,
@@ -34,26 +39,65 @@ do
 	    end
 	    return "continue",nil
 	 end,
-      cert_received =
+      ["revision_sent"] =
+	 function(new_id,revision,certs,session_id)
+	    for _, item in pairs(certs) do
+	       RL_note_netsync_cert_received("sent",
+					     new_id,
+					     item.key,
+					     item.name,
+					     item.value,
+					     session_id)
+	    end
+	    return "continue",nil
+	 end,
+      ["cert_received"] =
 	 function(rev_id,key,name,value,session_id)
-	    RL_note_netsync_cert_received(rev_id,
+	    RL_note_netsync_cert_received("received",
+					  rev_id,
 					  key,name,value,
 					  session_id)
 	    return "continue",nil
 	 end,
-      ["end"] = function(session_id)
-		   local first = true
-		   for item, amount in pairs(netsync_branches[session_id])
-		   do
-		      if first then
-			 io.stderr:write("Affected branches:\n")   
-			 first = false
-		      end
-		      io.stderr:write("  ",item,"  (",amount,")\n")   
-		   end
-		   netsync_branches[session_id] = nil
-		   return "continue",nil
-		end
+      ["cert_sent"] =
+	 function(rev_id,key,name,value,session_id)
+	    RL_note_netsync_cert_received("sent",
+					  rev_id,
+					  key,name,value,
+					  session_id)
+	    return "continue",nil
+	 end,
+      ["end"] =
+	 function(session_id,status)
+	    -- only try to display results if we got
+	    -- at least partial contents
+	    if status > 211 then
+	       return "continue",nil
+	    end
+
+	    local first = true
+	    for item, amount in pairs(netsync_branches["received"][session_id])
+	    do
+	       if first then
+		  io.stderr:write("Received data on branches:\n")
+		  first = false
+	       end
+	       io.stderr:write("  ",item,"  (",amount,")\n")   
+	    end
+	    netsync_branches["received"][session_id] = nil
+
+	    first = true
+	    for item, amount in pairs(netsync_branches["sent"][session_id])
+	    do
+	       if first then
+		  io.stderr:write("Sent data on branches:\n")
+		  first = false
+	       end
+	       io.stderr:write("  ",item,"  (",amount,")\n")   
+	    end
+	    netsync_branches["sent"][session_id] = nil
+	    return "continue",nil
+	 end
    }
 
    local v,m = push_hook_functions(notifier)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]