I noticed that the current bzr checkout locks up when ~/.bazaar/ignore
does not exist.  The quick fix is to call (expand-file-name ...) on
`dir' in bzr-ignore-setup, but let's do it right.

<<LOG-START>>

* lisp/bzr.el (bzr-ignore-setup): Call dvc-make-temp-dir.  If "bzr init;
  bzr ignored" fails to make the file, make it ourselves.  There's no
  need to throw a confusing warning message here.

* lisp/dvc-emacs.el (dvc-emacs-make-temp-dir): New function that is
  aliased to dvc-make-temp-dir.  It creates a temporary directory with a
  given prefix in the default temp area, returning its location.

* lisp/dvc-xemacs.el (dvc-xmas-make-temp-dir): Ditto, but for XEmacs.

<<LOG-END>>


[VERSION] dvc-dev-bzr

bzr (bazaar-ng) 0.8.2

Emacs  : GNU Emacs 22.0.50.1 (i686-pc-linux-gnu, GTK+ Version 2.8.18)
 of 2006-07-30 on tuxtanker

-- 
Michael Olson -- FSF Associate Member #652 -- http://www.mwolson.org/
Interests: Emacs Lisp, text markup, protocols -- Jabber: mwolson_at_hcoop.net
  /` |\ | | | IRC: freenode.net/mwolson: #emacs, #hcoop, #muse, #PurdueLUG
 |_] | \| |_| Projects: Emacs, Muse, ERC, EMMS, Planner, ErBot, DVC
=== modified file 'lisp/bzr.el'
--- lisp/bzr.el	
+++ lisp/bzr.el	
@@ -536,18 +536,14 @@
   (let* ((file (bzr-config-file "ignore"))
          (buf (or (when (file-exists-p file)
                     (find-file-noselect file))
-                  ;; let bzr create the file.
-                  (let* ((dir (make-temp-name "dvc-bzr-ignore"))
-                         (foo (make-directory dir))
+                  ;; give bzr a chance to create the file
+                  (let* ((dir (dvc-make-temp-dir "dvc-bzr-ignore"))
                          (default-directory dir))
                     (dvc-run-dvc-sync 'bzr (list "init")
                                       :finished 'dvc-null-handler)
                     (dvc-run-dvc-sync 'bzr (list "ignored")
                                       :finished 'dvc-null-handler)
-                    (if (file-exists-p file)
-                        (find-file-noselect file)
-                      (message "WARNING: Could not find or create bzr user-wide ignore file.")
-                      nil))))
+                    (find-file-noselect file))))
          (ins t))
     (when buffer
       (with-current-buffer buf

=== modified file 'lisp/dvc-emacs.el'
--- lisp/dvc-emacs.el	
+++ lisp/dvc-emacs.el	
@@ -66,6 +66,16 @@
         (forward-line 0)
         (1+ (count-lines start (point)))))))
 
+(defun dvc-emacs-make-temp-dir (prefix)
+  "Make a temporary directory using PREFIX.
+Return the name of the directory."
+  (let ((dir (make-temp-name
+              (expand-file-name prefix temporary-file-directory))))
+    (make-directory dir)
+    dir))
+
+(defalias 'dvc-make-temp-dir 'dvc-emacs-make-temp-dir)
+
 (provide 'dvc-emacs)
 ;; Local Variables:
 ;; arch-tag: 66b92889-1ce9-4c1d-818a-8bd5ee499091

=== modified file 'lisp/dvc-xemacs.el'
--- lisp/dvc-xemacs.el	
+++ lisp/dvc-xemacs.el	
@@ -315,6 +315,15 @@
 (unless (functionp 'diff-hunk-prev)
   (defalias 'diff-hunk-prev 'diff-prev-hunk))
 
+(defun dvc-xmas-make-temp-dir (prefix)
+  "Make a temporary directory using PREFIX.
+Return the name of the directory."
+  (let ((dir (make-temp-name (expand-file-name prefix (temp-directory)))))
+    (make-directory dir)
+    dir))
+
+(defalias 'dvc-make-temp-dir 'dvc-xmas-make-temp-dir)
+
 ;; From Gnus.
 (defun dvc-xmas-move-overlay (extent start end &optional buffer)
   (set-extent-endpoints extent start end buffer))

_______________________________________________
Dvc-dev mailing list
[email protected]
https://mail.gna.org/listinfo/dvc-dev

Reply via email to