[Cl-darcs-cvs] r178 - cl-darcs/trunk

mhenoch at common-lisp.net mhenoch at common-lisp.net
Mon Mar 24 00:08:39 UTC 2008


Author: mhenoch
Date: Sun Mar 23 19:08:39 2008
New Revision: 178

Modified:
   cl-darcs/trunk/repo.lisp
Log:
GET-COMMON-AND-UNCOMMON returns patchinfo in correct order


Modified: cl-darcs/trunk/repo.lisp
==============================================================================
--- cl-darcs/trunk/repo.lisp	(original)
+++ cl-darcs/trunk/repo.lisp	Sun Mar 23 19:08:39 2008
@@ -167,8 +167,16 @@
 THEIRS."
   ;; Of course, there are possible optimizations here, in particular
   ;; regarding tags, but this will do for now.
-  (let ((ours-list (apply #'append (reverse ours)))
-	(theirs-list (apply #'append (reverse theirs))))
-    (values (intersection ours-list theirs-list :test #'equalp)
-	    (set-difference ours-list theirs-list :test #'equalp)
-	    (set-difference theirs-list ours-list :test #'equalp))))
+  (setf ours (apply #'append (reverse ours)))
+  (setf theirs (apply #'append (reverse theirs)))
+  (let (common-patches our-patches their-patches)
+    (loop
+       for ou on ours and th on theirs
+       while (equalp (car ou) (car th))
+       collect (car ou) into common
+       finally
+	 (setf common-patches common
+	       our-patches ou
+	       their-patches th))
+    (values common-patches our-patches their-patches)))
+



More information about the Cl-darcs-cvs mailing list