[announce] bzrweb seems a bit finished

Chris McCormick chris at mccormick.cx
Wed Jun 1 04:30:56 BST 2005


On Wed, Jun 01, 2005 at 01:55:41PM +1000, Martin Pool wrote:
> On Wed, 2005-06-01 at 10:16 +0800, Chris McCormick wrote:
> 
> > Bzrweb is working against the latest bzr.dev as well, however I think
> > there may be some issues with locking files not owned by the Apache
> > user again because the lock_mode argument was removed from the Branch
> > constructor. 
> 
> There are now lock_read() and lock_write() methods.  I would expect that
> bzrweb wouldn't need to call either of them though, because it's
> presumably only doing readonly access and the relevant branch methods
> take and release locks as needed.

Yep, I saw those new methods and you're right that bzrweb doesn't need
to use them since branch does all the locking itself.

> Locking currently has the bug that it always tries to open the file
> read-write even if it only wants a read lock, which is presumably
> causing the permissions problems.  I am going to change that now so that
> readers only need filesystem read access, which should fix your
> problems.

Great!

Incidentally, bzrweb still requires the trivial patch to bzr on
show_diff() which allows the optional argument of target_revision
[attached]. I should probably look at `bzr diff` again to see if it
still uses show_diff().

Best regards,

Chris.

-------------------
chris at mccormick.cx
http://mccormick.cx
-------------- next part --------------
*** modified file '.bzrignore'
--- .bzrignore 
+++ .bzrignore 
@@ -10,4 +10,3 @@
 bzr-test.log
 ,,*
 testbzr.log
-api

*** modified file 'bzrlib/diff.py'
--- bzrlib/diff.py 
+++ bzrlib/diff.py 
@@ -147,7 +147,7 @@
     
 
 
-def show_diff(b, revision, specific_files, external_diff_options=None):
+def show_diff(b, revision, specific_files, external_diff_options=None, target_revision=None):
     import sys
 
     if revision == None:
@@ -155,7 +155,10 @@
     else:
         old_tree = b.revision_tree(b.lookup_revision(revision))
         
-    new_tree = b.working_tree()
+    if (target_revision):
+        new_tree = b.revision_tree(b.lookup_revision(target_revision))
+    else:
+        new_tree = b.working_tree()
 
     show_diff_trees(old_tree, new_tree, sys.stdout, specific_files,
                     external_diff_options)



More information about the bazaar mailing list