Bzr supports tree-less branches, i.e., directories which represent a
branch but do not contain an actual working tree.

Currently dvc-log, dvc-changelog can not show logs for such
directories even though these operations are well defined.  The reason
for this is that dvc-tree-root and bzr-tree-root (as the name implies)
check for a working tree, which is implemented by checking for
".bzr/checkout" directory.

The following patch introduces function bzr-branch-root which returns
branch root by looking for the ".bzr/branch" directory. It then
enables bzr-log and bzr-changelog to work on tree-less
directories. 

Unfortunately the dvc-log and dvc-changelog still do not work since
they need to find out which back end the directory belongs to, and
they do that by using dvc-tree-root.

Comments welcome.

Best,
Bojan

# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [EMAIL PROTECTED]
# target_branch: ../main/
# testament_sha1: 000db09c0b9c7082ef1abc6bc8f4e9a77245ea48
# timestamp: 2008-07-01 10:22:27 +0100
# base_revision_id: [EMAIL PROTECTED]
# 
# Begin patch
=== modified file 'lisp/bzr-core.el'
--- lisp/bzr-core.el	2007-10-15 09:05:05 +0000
+++ lisp/bzr-core.el	2008-07-01 09:02:45 +0000
@@ -49,6 +49,18 @@
                         location no-error))
 
 ;;;###autoload
+(defun bzr-branch-root (&optional location no-error interactive)
+  "Return the branch root for LOCATION, nil if not in a branch. 
+
+This function allows DVC relevant functions (e.g., log) to work
+on bzr branches with no tree."
+  (interactive)
+  (dvc-tree-root-helper ".bzr/branch/" (or interactive
+                                    (interactive-p))
+                        "%S is not a bzr-managed branch"
+                        location no-error))
+
+;;;###autoload
 (defun bzr-tree-id ()
   "Call \"bzr log -r 1\" to get the tree-id.
 Does anyone know of a better way to get this info?"

=== modified file 'lisp/bzr-revision.el'
--- lisp/bzr-revision.el	2008-04-09 19:34:58 +0000
+++ lisp/bzr-revision.el	2008-07-01 09:21:24 +0000
@@ -164,7 +164,7 @@
                    (list "-r" (format "last:%d.." dvc-revlist-last-n)))
                (list dvc-revlist-path)))))
     (dvc-build-revision-list
-     'bzr 'log default-directory cmd 'bzr-log-parse
+     'bzr 'alog default-directory cmd 'bzr-log-parse
      dvc-revlist-brief dvc-revlist-last-n dvc-revlist-path
      'bzr-log-refresh))
   (goto-char (point-min)))
@@ -176,7 +176,7 @@
 LAST-N restriction is applied first, so if both PATH and LAST-N are
 specified, fewer than LAST-N revisions may be shown."
   (interactive (list default-directory (if current-prefix-arg (prefix-numeric-value current-prefix-arg) dvc-log-last-n)))
-  (let ((default-directory (bzr-tree-root (or path default-directory)))
+  (let ((default-directory (bzr-branch-root (or path default-directory)))
         (dvc-revlist-path path)
         (dvc-revlist-brief t)
         (dvc-revlist-last-n last-n))
@@ -196,8 +196,8 @@
 (defun bzr-changelog (&optional path)
   "Run bzr log and show the full log message."
   (interactive (list default-directory))
-  (let ((default-directory (bzr-tree-root (or path default-directory))))
-    (dvc-build-revision-list 'bzr 'log default-directory '("log") 'bzr-log-parse nil nil path
+  (let ((default-directory (bzr-branch-root (or path default-directory))))
+    (dvc-build-revision-list 'bzr 'alog default-directory '("log") 'bzr-log-parse nil nil path
                              (dvc-capturing-lambda ()
                                (bzr-changelog (capture path))))
     (goto-char (point-min))))

=== modified file 'lisp/dvc-buffers.el'
--- lisp/dvc-buffers.el	2008-05-26 22:35:43 +0000
+++ lisp/dvc-buffers.el	2008-07-01 09:02:45 +0000
@@ -61,6 +61,9 @@
     (changelog "changelog*" root)
     (tree-lint "tree-lint*" root)
     (log       "log*"       root)
+    ;; alog for "absolute log", i.e., assume path supplied is already
+    ;; the root path
+    (alog       "log*"      path)
     (remote-log "log(%s)*"  string)
     (log-edit  "log-edit*"  root)
     (errors    "error*"     multiple)

# Begin bundle
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
-- 
Bojan Nikolic          ||          http://www.bnikolic.co.uk
_______________________________________________
Dvc-dev mailing list
[email protected]
https://mail.gna.org/listinfo/dvc-dev

Reply via email to