merge
authorJoe Walker <jwalker@mozilla.com>
Fri, 11 Sep 2009 13:08:51 +0100
changeset 2707 035cc45117a6cbae4d14c86b974d0b4592d0373f
parent 2706 37de21a8fd35d17c26feb070fa93be0a082d8205 (current diff)
parent 2621 c95387d1ee60f67e8835ba70ff8572863facea68 (diff)
child 2708 503bb6a0c87812e206009c26ad2479bab8418535
push id1137
push userjwalker@mozilla.com
push dateFri, 25 Sep 2009 14:44:01 +0000
merge
backend/python/bespin/controllers.py
backend/python/bespin/deploy.py
backend/python/bespin/filesystem.py
backend/python/bespin/mobwrite/integrate.py
backend/python/bespin/tests/test_deploy.py
bootstrap.py
frontend/js/bespin/deploy.js
frontend/js/bespin/vcs.js
pavement.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a66d81ac2437fa343967e9dd92b338fb5730b97
GIT binary patch
literal 17341
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
--- a/frontend/js/bespin/vcs.js
+++ b/frontend/js/bespin/vcs.js
@@ -82,57 +82,57 @@ bespin.vcs.getInfoFromUser = function(in
         callback(values);
         instruction.unlink();
         dojo.stopEvent(e);
         return false;
     };
 
     var vcsauth = dojo.create("form", { onsubmit: saveform });
     var table = dojo.create("table", { }, vcsauth);
-
+    
     var tr, td;
-
+    
     var focus = null;
-
+    
     if (opts.getKeychain) {
         // if we already have the password, we don't need to prompt
         // for it!
         if (bespin.vcs._keychainpw) {
             var kcpass = {value: bespin.vcs._keychainpw};
         } else {
             tr = dojo.create("tr", { }, table);
             dojo.create("td", { innerHTML: "Keychain password: " }, tr);
             td = dojo.create("td", { }, tr);
             var kcpass = dojo.create("input", { type: "password" }, td);
             dojo.create("span", {
                 style: "padding-left:5px; color:#f88;",
                 innerHTML: opts.errmsg || ""
             }, td);
-
+            
             focus = kcpass;
         }
     }
-
+    
     if (opts.getMessage) {
         tr = dojo.create("tr", {}, table);
         td = dojo.create("td", {colspan: "2",
             innerHTML: "Commit message:"}, tr);
-
+            
         tr = dojo.create("tr", {}, table);
-        td = dojo.create("td", {colspan: "2"}, tr);
+        td = dojo.create("td", {colspan: "2"}, tr)
         var messagefield = dojo.create("textarea", {rows: 5, cols: 65},
             td);
-
+        
         if (!focus) { focus = messagefield; }
     }
 
     tr = dojo.create("tr", { }, table);
     dojo.create("td", { innerHTML: "&nbsp;" }, tr);
     td = dojo.create("td", { }, tr);
-
+    
     dojo.create("input", {
         type: "button",
         value: "Submit",
         onclick: saveform
     }, td);
 
     dojo.create("input", {
         type: "button",
@@ -737,30 +737,30 @@ bespin.vcs.svnCommands.genericExecute = 
     }
     var command = args.varargs;
     command.splice(0, 0, "svn", instruction.command.name);
     if (instruction.command.keychain || instruction.command.prompting) {
         var prompts;
         if (instruction.command.prompting) {
             prompts = instruction.command.prompting(command);
         } else {
-            prompts = { getKeychain: true };
+            prompts = {getKeychain: true}
         }
-
+        
         bespin.vcs.getInfoFromUser(instruction, function(values) {
             var commandMsg = {command: command};
-
+            
             if (values.message) {
                 command.splice(2, 0, "-m", values.message);
             }
-
+            
             if (values.kcpass) {
                 commandMsg.kcpass = values.kcpass;
             }
-
+            
             bespin.get('server').vcs(project,
                                     commandMsg,
                                     instruction,
                                     bespin.vcs._createStandardHandler(instruction,
                                         {escape: true}));
 
         }, prompts);
     } else {
@@ -1053,27 +1053,27 @@ bespin.vcs.svnCommands.addCommand({
 
 
 bespin.vcs.svnCommands.addCommand({
     name: 'copy',
     takes: ['*'],
     prompting: function(command) {
         var dst = command[command.length - 1];
         var lastsrc = command[command.length - 2];
-
+        
         // if dst is a URL, that means we need keychain and message
         if (dst.indexOf("://")) {
             return {getKeychain: true, getMessage: true};
         }
-
+        
         // if we have a URL source, we do need to prompt for keychain.
         if (lastsrc.indexOf("://")) {
             return {getKeychain: true};
         }
-
+        
         return null;
     },
     preview: 'copy (cp): Duplicate something in working copy or repository, remembering history',
     description:         "usage: svn copy [--help] [--revision REVISION] [--quiet] [--parents]\n" +
         "                [--message MESSAGE] [--with-revprop WITH_REVPROP]\n" +
         "                src [src ...] dst\n" +
         "\n" +
         "copy (cp): Duplicate something in working copy or repository, remembering history.\n" +