Re: [darcs-devel] darcs patch: Add --{allow, dont-allow, mark}-conflicts to darcs pull.

2008-01-17 Thread Nicolas Pouillard
Excerpts from Tommy Pettersson's message of Wed Jan 16 21:18:15 +0100 2008:
 On Wed, Jan 16, 2008 at 07:36:30PM +, Nicolas Pouillard wrote:
  Wed Jan 16 20:34:26 CET 2008  [EMAIL PROTECTED]
* Add --{allow,dont-allow,mark}-conflicts to darcs pull.

This patch also merge the --external option to pull_conflicts_options
like with apply.
 
 Hmmm... I don't think merging --external-merger to the
 multi-choice option is a good idea. A common case is to have
 'ALL external-merger my_favorite_merger in the .darcs/defaults
 file, and expect 'darcs apply --mark-conflicts' to use
 my_favorite_merger.

So,   does  makes  sense  to  extract  the  external-merger  option  from  the
multi-choice option for both pull and apply?

-- 
Nicolas Pouillard aka Ertai
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] announcing darcs 2.0.0pre2

2008-01-17 Thread Simon Marlow
David Roundy wrote:
 On Thu, Jan 03, 2008 at 11:11:40AM +, Simon Marlow wrote:
 Anyhow, could you retry this test with the above change in methodology,
 and let me know if (a) the pull is still slow the first time and (b) if
 it's much faster the second time (after the reverse unpull/pull)?
 I think I've done it in both directions now, and it got faster, but still 
 much slower than darcs1:

 $ time darcs2 unpull --from-tag 2007-09-25 -a
 Finished unpulling.
 58.68s real   50.64s user   6.36s system   97% darcs2 unpull --from-tag 
 2007-09-25 -a
 $ time darcs2 pull -a ../ghc-darcs2
 Pulling from ../ghc-darcs2...
 Finished pulling and applying.
 53.28s real   44.62s user   7.10s system   97% darcs2 pull -a ../ghc-darcs2

 This is still an order of magnitude slower than darcs1 for the same 
 operation.  (these times are now on the local filesystem, BTW)
 
 I've recently found the problem leading to this slowdown (I believe) and
 get about an order-of-magnitude improvement in the speed of a pull of 400
 patches in the ghc repository.  It turned out to be an issue that scaled
 with the size (width) of the repository, not with the number of patches
 (which had been the obvious suspect), which was causing trouble when
 applying to the pristine cache.
 
 At this point, darcs-2 outperforms darcs-1 on most tests that I've tried,
 so it'd be a good time to find some more performance problems, if you
 can... and I don't doubt that there are more out there.

Certainly a lot faster, nice work!  Though it's still not as fast as 
darcs-1 here.  New figures:

$ time darcs2 unpull --from-tag 2007-09-25 -a
Finished unpulling.
18.83s real   15.27s user   1.53s system   89% darcs2 unpull --from-tag 
2007-09-25 -a
$ time darcs2 pull ../ghc-darcs2-other -a
Finished pulling and applying.
10.38s real   7.69s user   1.50s system   88% darcs2 pull ../ghc-darcs2-other -

I repeated the darcs-1 timings for comparison:

$ time darcs unpull --from-tag 2007-09-25 -a
Finished unpulling.
8.04s real   7.14s user   0.90s system   99% darcs unpull --from-tag 
2007-09-25 -a
$ time darcs pull ~/ghc-HEAD -a
Finished pulling and applying.
7.90s real   4.90s user   0.98s system   74% darcs pull ~/ghc-HEAD -a

In this case darcs-1 is pulling more patches (530 vs. 400), because I'm 
using the latest GHC HEAD repo.  Also the darcs-1 repository being pulled 
from is on a different, NFS mounted, filesystem, whereas the darcs-2 
timings were made using repos on the same local filesystem.  In all cases I 
tried things a few times to let caches etc. fill up.

Can you repeat these?

Cheers,
Simon
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Add --{allow, dont-allow, mark}-conflicts to darcs pull.

2008-01-17 Thread Tommy Pettersson
On Thu, Jan 17, 2008 at 09:26:46AM +0100, Nicolas Pouillard wrote:
 Excerpts from Tommy Pettersson's message of Wed Jan 16 21:18:15 +0100 2008:
  On Wed, Jan 16, 2008 at 07:36:30PM +, Nicolas Pouillard wrote:
   Wed Jan 16 20:34:26 CET 2008  [EMAIL PROTECTED]
 * Add --{allow,dont-allow,mark}-conflicts to darcs pull.
 
 This patch also merge the --external option to pull_conflicts_options
 like with apply.
  
  Hmmm... I don't think merging --external-merger to the
  multi-choice option is a good idea. A common case is to have
  'ALL external-merger my_favorite_merger in the .darcs/defaults
  file, and expect 'darcs apply --mark-conflicts' to use
  my_favorite_merger.
 
 So,   does  makes  sense  to  extract  the  external-merger  option  from  the
 multi-choice option for both pull and apply?

Absolutely! In fact, I thought this was the case for Apply,
until I just looked at the code and saw it treats
--external-merge (without 'r' at the end) as a multi-choice of
the other conflict options. Maybe I was confusing it with the
--diff-command option, which is how --external-merger (with 'r'
at the end) should work, imho.

But to have Pull equal Apply in semantics of external-merge
(whatever they are), as is now done with your patch, is of
course the right thing.


-- 
Tommy Pettersson [EMAIL PROTECTED]
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] darcs patch: Check that using 'record --look-for-add --all' left an...

2008-01-17 Thread Nicolas Pouillard
Thu Jan 17 12:51:59 CET 2008  [EMAIL PROTECTED]
  * Check that using 'record --look-for-add --all' left an empty pending patch.

New patches:

[Check that using 'record --look-for-add --all' left an empty pending patch.
[EMAIL PROTECTED] {
hunk ./tests/look_for_add.sh 2
 #!/bin/sh
+
+cat  empty_pending EOF
+{
+}
+EOF
+check_empty_pending() {
+  echo  pending ==
+  cat _darcs/patches/pending
+  echo  pending ==
+  [ -z _darcs/patches/pending ] || cmp _darcs/patches/pending ../empty_pending
+}
+
 set -ev
 
 test $DARCS || DARCS=$PWD/../darcs
hunk ./tests/look_for_add.sh 23
 $DARCS init
 mkdir dir
 $DARCS record -a -m add_dir -A x --look-for-adds
+check_empty_pending
 echo zig  dir/foo
 echo zag  foo
 mkdir dir2
hunk ./tests/look_for_add.sh 29
 echo hi  dir2/foo2
 $DARCS record -a -m add_foo -A x --look-for-adds
+check_empty_pending
 cd ../temp2
 $DARCS init
 $DARCS pull -a ../temp1
}

Context:

[add changelog entry for rollback.
David Roundy [EMAIL PROTECTED]**20080116212037] 
[rollback my simplification of conflict options for pull and apply.
David Roundy [EMAIL PROTECTED]**20080116211650] 
[eliminate apply_conflict_options and pull_[same] in favor of unified conflict_options.
David Roundy [EMAIL PROTECTED]**20080116205623] 
[reimplement rollback.
David Roundy [EMAIL PROTECTED]**20080116203644] 
[fix pull.pl test to show off rollback error.
David Roundy [EMAIL PROTECTED]**20080110230904] 
[fix bug where get could produce a darcs-2 repository from a darcs-1 repo incorrectly.
David Roundy [EMAIL PROTECTED]**20080116194547] 
[fix replacePristine to work regardless of current working directory.
David Roundy [EMAIL PROTECTED]**20080116162528
 This is intended to be a property of all Repository functions except those
 that explicitly mention the current directory in their name.
] 
[treat errors in reading current pristine cache as corruption in darcs repair.
David Roundy [EMAIL PROTECTED]**20080116162427] 
[make withCurrentDirectory succeed even if old directory has been removed.
David Roundy [EMAIL PROTECTED]**20080116162358] 
[fixed bug triggered by conflict-doppleganger test.
David Roundy [EMAIL PROTECTED]**20080116161548] 
[make doppelganger test more verbose.
David Roundy [EMAIL PROTECTED]**20080116161421] 
[fix bugs in date parsing pointed out by Mark.
David Roundy [EMAIL PROTECTED]**20080115235341] 
[treat partially-specified dates as more vague matches.
David Roundy [EMAIL PROTECTED]**20080115213601
 i.e. if you --match date 2007 you'll get all the patches in 2007, not
 just those on January 1, 2007.
] 
[issue31, issue187: Update date matching so we test for an actual match in some cases, not just date parsing.
Mark Stosberg [EMAIL PROTECTED]**20080110030400
 This revealed some bugs which have yet to be fixed, so the test is still failing. 
] 
[Add --{allow,dont-allow,mark}-conflicts to darcs pull.
[EMAIL PROTECTED]
 
 This patch also merge the --external option to pull_conflicts_options
 like with apply.
] 
[Use http://darcs.net/repos/stable instead of http://abridgegame.org/darcs.
[EMAIL PROTECTED] 
[Fix darcs repair with darcs1 format.
[EMAIL PROTECTED]
 
 Using  withCurentDirectory  was  wrong  because this function wants to restore
 the  current  directory.  In  this  case it no longer exists (.../newpristine)
 because renamed to .../pristine.
] 
[Add a test case for darcs repair.
[EMAIL PROTECTED]
 
 In fact both darcs1 and hashed format are broken.
] 
[major speedup in applyHashed.
David Roundy [EMAIL PROTECTED]**20080115191825
 This should make darcs pull on very large repositories (i.e. the ghc
 repository) equivalent to the speed of darcs1, possibly faster.
 
 The change is that now each named patch is applied to the pristine cache in
 memory, with writing the changed files and directories to disk happening
 only at the end.  This reduces disk activity, and also reduces the number
 of sha1 hashes that are computed, with a small increase in the worst-case
 memory use.  This is achieved by caching the hashes of slurped files in the
 Slurpy itself, which allows us to identify dirty files.
] 
[fix issue588 by simplifying pending handling.
David Roundy [EMAIL PROTECTED]**20080115162143] 
[add test for issue588 (thanks to Nicolas Pouillard!).
David Roundy [EMAIL PROTECTED]**20080115152504] 
[Fix a bug in darcs repair: go to the repo dir and slurp the new pristine dir.
[EMAIL PROTECTED] 
[fix perl bug script code.
David Roundy [EMAIL PROTECTED]**20080115215954] 
[add some changelog entries
Tommy Pettersson [EMAIL PROTECTED]**20080115214838] 
[add some changelog entries
Tommy Pettersson [EMAIL PROTECTED]**2007204931] 
[improve existing-bug test suite driver.
David Roundy [EMAIL PROTECTED]**20080115204455] 
[mark doppleganger test as currently buggy.
David Roundy [EMAIL PROTECTED]**20080115201835] 
[add directory for unresolved bug test scripts.
David Roundy [EMAIL PROTECTED]**20080115201733] 
[Issue81: Add test which shows that old and 

[darcs-devel] darcs patch: Move rollback to another section of TheCommands.

2008-01-17 Thread Nicolas Pouillard
Thu Jan 17 13:53:40 CET 2008  [EMAIL PROTECTED]
  * Move rollback to another section of TheCommands.

New patches:

[Move rollback to another section of TheCommands.
[EMAIL PROTECTED] {
hunk ./src/Darcs/TheCommands.lhs 71
 Group_name Direct modification of the repository:,
 Command_data tag,
 Command_data setpref,
-Command_data rollback,
 Group_name Querying the repository:,
 Command_data diff_command,
 Command_data changes,
hunk ./src/Darcs/TheCommands.lhs 81
 Group_name Copying patches between repositories with working copy update:,
 Command_data pull,
 Command_data obliterate, Hidden_command unpull,
+Command_data rollback,
 Command_data push,
 Command_data send,
 Command_data apply,
}

Context:

[add changelog entry for rollback.
David Roundy [EMAIL PROTECTED]**20080116212037] 
[rollback my simplification of conflict options for pull and apply.
David Roundy [EMAIL PROTECTED]**20080116211650] 
[eliminate apply_conflict_options and pull_[same] in favor of unified conflict_options.
David Roundy [EMAIL PROTECTED]**20080116205623] 
[reimplement rollback.
David Roundy [EMAIL PROTECTED]**20080116203644] 
[fix pull.pl test to show off rollback error.
David Roundy [EMAIL PROTECTED]**20080110230904] 
[fix bug where get could produce a darcs-2 repository from a darcs-1 repo incorrectly.
David Roundy [EMAIL PROTECTED]**20080116194547] 
[fix replacePristine to work regardless of current working directory.
David Roundy [EMAIL PROTECTED]**20080116162528
 This is intended to be a property of all Repository functions except those
 that explicitly mention the current directory in their name.
] 
[treat errors in reading current pristine cache as corruption in darcs repair.
David Roundy [EMAIL PROTECTED]**20080116162427] 
[make withCurrentDirectory succeed even if old directory has been removed.
David Roundy [EMAIL PROTECTED]**20080116162358] 
[fixed bug triggered by conflict-doppleganger test.
David Roundy [EMAIL PROTECTED]**20080116161548] 
[make doppelganger test more verbose.
David Roundy [EMAIL PROTECTED]**20080116161421] 
[fix bugs in date parsing pointed out by Mark.
David Roundy [EMAIL PROTECTED]**20080115235341] 
[treat partially-specified dates as more vague matches.
David Roundy [EMAIL PROTECTED]**20080115213601
 i.e. if you --match date 2007 you'll get all the patches in 2007, not
 just those on January 1, 2007.
] 
[issue31, issue187: Update date matching so we test for an actual match in some cases, not just date parsing.
Mark Stosberg [EMAIL PROTECTED]**20080110030400
 This revealed some bugs which have yet to be fixed, so the test is still failing. 
] 
[Add --{allow,dont-allow,mark}-conflicts to darcs pull.
[EMAIL PROTECTED]
 
 This patch also merge the --external option to pull_conflicts_options
 like with apply.
] 
[Use http://darcs.net/repos/stable instead of http://abridgegame.org/darcs.
[EMAIL PROTECTED] 
[Fix darcs repair with darcs1 format.
[EMAIL PROTECTED]
 
 Using  withCurentDirectory  was  wrong  because this function wants to restore
 the  current  directory.  In  this  case it no longer exists (.../newpristine)
 because renamed to .../pristine.
] 
[Add a test case for darcs repair.
[EMAIL PROTECTED]
 
 In fact both darcs1 and hashed format are broken.
] 
[major speedup in applyHashed.
David Roundy [EMAIL PROTECTED]**20080115191825
 This should make darcs pull on very large repositories (i.e. the ghc
 repository) equivalent to the speed of darcs1, possibly faster.
 
 The change is that now each named patch is applied to the pristine cache in
 memory, with writing the changed files and directories to disk happening
 only at the end.  This reduces disk activity, and also reduces the number
 of sha1 hashes that are computed, with a small increase in the worst-case
 memory use.  This is achieved by caching the hashes of slurped files in the
 Slurpy itself, which allows us to identify dirty files.
] 
[fix issue588 by simplifying pending handling.
David Roundy [EMAIL PROTECTED]**20080115162143] 
[add test for issue588 (thanks to Nicolas Pouillard!).
David Roundy [EMAIL PROTECTED]**20080115152504] 
[Fix a bug in darcs repair: go to the repo dir and slurp the new pristine dir.
[EMAIL PROTECTED] 
[fix perl bug script code.
David Roundy [EMAIL PROTECTED]**20080115215954] 
[add some changelog entries
Tommy Pettersson [EMAIL PROTECTED]**20080115214838] 
[add some changelog entries
Tommy Pettersson [EMAIL PROTECTED]**2007204931] 
[improve existing-bug test suite driver.
David Roundy [EMAIL PROTECTED]**20080115204455] 
[mark doppleganger test as currently buggy.
David Roundy [EMAIL PROTECTED]**20080115201835] 
[add directory for unresolved bug test scripts.
David Roundy [EMAIL PROTECTED]**20080115201733] 
[Issue81: Add test which shows that old and hashed formats consider dopplegangers 

Re: [darcs-devel] [Revctrl] DARCS correctness question

2008-01-17 Thread Ian Lynagh
On Thu, Jan 17, 2008 at 01:57:23PM +1100, William Uther wrote:
 
 If I have two Darcs workspaces, each of which have the same set of  
 patches, but in different orders, should these workspaces be  
 identical (even in the presence of conflicts)?

The pristine trees should be, but the way the conflicts are marked in
the working directory need not be.

 # Now we'll check for differences in the result
 cd ..
 diff site2/myfile site3/myfile

$ diff -q site2/myfile site3/myfile  echo OK
Files site2/myfile and site3/myfile differ
$ diff -q site2/_darcs/pristine/myfile site3/_darcs/pristine/myfile  echo OK
OK


Thanks
Ian

___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] libwww bug

2008-01-17 Thread Dmitry Kurochkin
Hi David.

I have found time to work on darcs at last. Here is fix for failure
with xmonad repository.
The problem was that server sent Content-Encoding: x-gzip header.
libwww did not know how to handle it and just discarded all content.

There is also another small fix for copyUrl.

I have more time to work on darcs now and I plan to start working on
API changes we discussed earlier. Also my patches for curl pipelining
are in CVS now (but not released yet) and I will use it in darcs. I
think both curl and libwww will provide the same API and common parts
should be moved to separate module.

Regards,
  Dmitry

2008/1/11, David Roundy [EMAIL PROTECTED]:
 On Fri, Jan 11, 2008 at 02:05:05AM +0300, Dmitry Kurochkin wrote:
  Here is a patch which adds basic error reporting in libwww. Now it
  should fail on error and print error code at least.

 Libwww still doesn't fail, it just returns an empty file.

  Is the repo you get failure with public?

 Sure, it's the xmonad repository

 http://code.haskell.org/xmonad

 and I've got a local repository that's missing a few patches and has a
 couple that aren't in the main repository.  When I do a darcs send
 --dry-run, I get a failure.  I don't think this is specific to this
 repository, but I'll send you (offlist) a tarball of my repository anyhow.
 I'll be very interested in hearing whether you get the same error.

 David

  2008/1/10, David Roundy [EMAIL PROTECTED]:
   On Fri, Jan 04, 2008 at 03:57:09PM -0500, David Roundy wrote:
I can confirm a speedup of better than a factor of four in download 
times
using the new libwww code by Dmitry that I'm right now pushing:
  
   Alas, it appears that there is a bug in the libwww code.  I am able to
   reproducibly trigger errors with my xmonad repository, in which a download
   fails without giving a failure message.  It exits with success, but the
   downloaded file has size zero.  :(  So I'm deprecating the libwww bindings
   for now (making them non-default, but leaving them there, so interested
   folks could compile with them using configure --with-libwww), and plan to
   remove them before the 2.0 release, unless they get fixed (and I don't 
   have
   time to fix them).
 ___
 darcs-devel mailing list
 darcs-devel@darcs.net
 http://lists.osuosl.org/mailman/listinfo/darcs-devel



libwww_fix.dpatch
Description: Binary data
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] Impossible case in darcs PatchRead.lhs or Patch/Read.lhs

2008-01-17 Thread Michael Abbott
I sent the mail below to [EMAIL PROTECTED], but I can't see any trace of it 
anywhere, so maybe it got lost.

I can follow up, though, with something useful: it appears that the patch 
in question got silently eaten by our goddamned web filter (and converted 
into a message about inappropriate material)!

darcs could handle this a bit more smoothly, in particular some form of 
patch file validation would be sensible, together with reporting the name 
of the failing patch!  The patch in question happens to contain a copy of 
Utopia by Thomas More (test data for Yi?): this is obviously regarded as 
inappropriate and subversive content by the UK government!

Actually, it would be even better if darcs could download all of the 
patches as a single http request, but I guess that would require more 
cooperation from the server than the current model allows; even better as 
an https request to bypass the crap that proxies produce.


-- Forwarded message --
Date: Tue, 15 Jan 2008 18:59:33 + (GMT)
From: Michael Abbott [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Subject: Impossible case in darcs PatchRead.lhs or Patch/Read.lhs

Running
darcs get http://code.haskell.org/yi
produces one of the following responses (depending on version).

Running the darcs-1.0.9-i386-linux binary, as downloaded from darcs.net, 
produces the message:


$ darcs get http://code.haskell.org/yi
...
FINISHED --18:23:31--
Downloaded: 5,562,103 bytes in 1370 files
Applying patch 551 of 1370... darcs: bug in darcs!
Impossible case at PatchRead.lhs:58 compiled 18:47:46 Aug 28 2007
Please report this to [EMAIL PROTECTED],
If possible include the output of 'darcs --exact-version'.
$ darcs --exact-version
darcs compiled on Aug 28 2007, at 18:50:44
# configured Sat Jun 16 09:59:48 PDT 2007
./configure /usr/local/share/config.site /usr/local/etc/config.site

Context:

[TAG 1.0.9
Tommy Pettersson [EMAIL PROTECTED]**20070603213706]
$


Alternatively, after downloading and building darcs from the repository using
darcs get --verbose --partial http://darcs.net/repos/stable
the error message has moved slightly:


$ darcs get http://code.haskell.org/yi/
Directory '/home/mga83/working/Haskell/yi' already exists, creating repository 
as '/home/mga83/working/Haskell/yi_0'
Copying patch 1370 of 1370... done.
Applying patch 551 of 1370... darcs: bug in darcs!
Impossible case at src/Darcs/Patch/Read.lhs:58 compiled 18:37:35 Jan 15 2008
Please report this to [EMAIL PROTECTED],
If possible include the output of 'darcs --exact-version'.
$ darcs --version
1.1.0pre1 (unknown)
$ darcs --exact-version | wc -l
1433
$


By the way, the page http://www.darcs.net/manual/node3.html suggests 
downloading the darcs repository from http://abridgegame.org/repos/darcs -- 
this appears to be a case of bit rot!

I hope this report is helpful.  Unfortunately searching bugs.darcs.net doesn't 
seem to work and just hangs.
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] libwww bug

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 03:29:22PM +0300, Dmitry Kurochkin wrote:
 Hi David.
 
 I have found time to work on darcs at last. Here is fix for failure
 with xmonad repository.
 The problem was that server sent Content-Encoding: x-gzip header.
 libwww did not know how to handle it and just discarded all content.

Thanks for the bugfix!

 There is also another small fix for copyUrl.
 
 I have more time to work on darcs now and I plan to start working on
 API changes we discussed earlier. Also my patches for curl pipelining
 are in CVS now (but not released yet) and I will use it in darcs. I
 think both curl and libwww will provide the same API and common parts
 should be moved to separate module.

I'll look forward to these patches!

What changes did you have to make for curl pipelining? These are changes in
libcurl itself?
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] libwww bug

2008-01-17 Thread Dmitry Kurochkin
2008/1/17, David Roundy [EMAIL PROTECTED]:
 On Thu, Jan 17, 2008 at 03:29:22PM +0300, Dmitry Kurochkin wrote:
  Hi David.
 
  I have found time to work on darcs at last. Here is fix for failure
  with xmonad repository.
  The problem was that server sent Content-Encoding: x-gzip header.
  libwww did not know how to handle it and just discarded all content.

 Thanks for the bugfix!

  There is also another small fix for copyUrl.
 
  I have more time to work on darcs now and I plan to start working on
  API changes we discussed earlier. Also my patches for curl pipelining
  are in CVS now (but not released yet) and I will use it in darcs. I
  think both curl and libwww will provide the same API and common parts
  should be moved to separate module.

 I'll look forward to these patches!

 What changes did you have to make for curl pipelining? These are changes in
 libcurl itself?

Yes, these are changes for better (current pipelining option is
pretty useless) pipelining in libcurl. Here are 2 threads on this
topic:

http://thread.gmane.org/gmane.comp.web.curl.library/17197
http://thread.gmane.org/gmane.comp.web.curl.library/17378

Regards,
  Dmitry

 --
 David Roundy
 Department of Physics
 Oregon State University
 ___
 darcs-devel mailing list
 darcs-devel@darcs.net
 http://lists.osuosl.org/mailman/listinfo/darcs-devel

___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Add --{allow, dont-allow, mark}-conflicts to darcs pull.

2008-01-17 Thread Nicolas Pouillard
Excerpts from Tommy Pettersson's message of Thu Jan 17 12:18:19 +0100 2008:
 On Thu, Jan 17, 2008 at 09:26:46AM +0100, Nicolas Pouillard wrote:
  Excerpts from Tommy Pettersson's message of Wed Jan 16 21:18:15 +0100 2008:
   On Wed, Jan 16, 2008 at 07:36:30PM +, Nicolas Pouillard wrote:
Wed Jan 16 20:34:26 CET 2008  [EMAIL PROTECTED]
  * Add --{allow,dont-allow,mark}-conflicts to darcs pull.
  
  This patch also merge the --external option to pull_conflicts_options
  like with apply.
   
   Hmmm... I don't think merging --external-merger to the
   multi-choice option is a good idea. A common case is to have
   'ALL external-merger my_favorite_merger in the .darcs/defaults
   file, and expect 'darcs apply --mark-conflicts' to use
   my_favorite_merger.
  
  So,   does  makes  sense  to  extract  the  external-merger  option  from  
  the
  multi-choice option for both pull and apply?
 
 Absolutely! In fact, I thought this was the case for Apply,
 until I just looked at the code and saw it treats
 --external-merge (without 'r' at the end) as a multi-choice of
 the other conflict options.

Yes, that's why I've done the same thing to pull.

 Maybe I was confusing it with the
 --diff-command option, which is how --external-merger (with 'r'
 at the end) should work, imho.

Hum,  what  is  the  external-merge*r* thing you talk about, I only know about
external-merge.

 But to have Pull equal Apply in semantics of external-merge
 (whatever they are), as is now done with your patch, is of
 course the right thing.

Yes,  but having --external-merge out of this option group could ease the case
you've talk about.

So  I  vote  for  having  --external-merge out the multi-choice group for both
pull and apply.

-- 
Nicolas Pouillard aka Ertai
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] libwww bug

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 04:07:26PM +0300, Dmitry Kurochkin wrote:
 2008/1/17, David Roundy [EMAIL PROTECTED]:
  What changes did you have to make for curl pipelining? These are changes in
  libcurl itself?
 
 Yes, these are changes for better (current pipelining option is
 pretty useless) pipelining in libcurl. Here are 2 threads on this
 topic:
 
 http://thread.gmane.org/gmane.comp.web.curl.library/17197
 http://thread.gmane.org/gmane.comp.web.curl.library/17378

Oh yay, so you're now an expert on how pipelining works in libcurl!  :) Any
chance we can get something like priority queuing? (Now that you know the
code better...)
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] darcs patch: Added test for issue381. (and 1 more)

2008-01-17 Thread E . Y . Kow
Note: I had to edit the context of Marnix's patch to make it apply cleanly,
which is probably a bad thing to do in the general case.  But I'm guessing that
send.sh hasn't changed between then and now.

Tue Jan  9 21:08:35 GMT 2007  Marnix Klooster [EMAIL PROTECTED]
  * Added test for issue381.

Thu Jan 17 16:17:04 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Move issue381 test to bugs directory.


New patches:

[Added test for issue381.
Marnix Klooster [EMAIL PROTECTED]**20070109210835] {
hunk ./tests/send.sh 32
 $DARCS send --author=me -a [EMAIL PROTECTED] --sendmail-command='grep ^To: [EMAIL PROTECTED] %' ../temp2
 
 # Test that the --subject parameter sets the subject
+
+# Test that editor is called when --output is used with --edit-description
+DARCS_EDITOR=cat $DARCS send --author=me -a --output=bundle --edit-description ../temp2  baz 21
+grep add_foo_bar baz
 $DARCS send --author=me -a --subject=it works --sendmail-command='grep ^Subject: it works$ %' ../temp2
 
 # Test that the --output-auto-name parameter outputs what we expect
}
[Move issue381 test to bugs directory.
Eric Kow [EMAIL PROTECTED]**20080117161704] {
addfile ./bugs/issue381.sh
hunk ./bugs/issue381.sh 1
+#!/bin/sh
+set -ev
+
+test $DARCS || DARCS=$PWD/../darcs
+DARCS_EDITOR=echo
+export DARCS_EDITOR
+
+rm -rf temp1 temp2
+mkdir temp1 temp2
+
+cd temp2
+$DARCS init
+
+# Test that editor is called when --output is used with --edit-description
+DARCS_EDITOR=cat $DARCS send --author=me -a --output=bundle --edit-description ../temp2  baz 21
+grep add_foo_bar baz
+$DARCS send --author=me -a --subject=it works --sendmail-command='grep ^Subject: it works$ %' ../temp2
+
+cd ..
+rm -rf temp1 temp2
hunk ./tests/send.sh 32
 $DARCS send --author=me -a [EMAIL PROTECTED] --sendmail-command='grep ^To: [EMAIL PROTECTED] %' ../temp2
 
 # Test that the --subject parameter sets the subject
-
-# Test that editor is called when --output is used with --edit-description
-DARCS_EDITOR=cat $DARCS send --author=me -a --output=bundle --edit-description ../temp2  baz 21
-grep add_foo_bar baz
-$DARCS send --author=me -a --subject=it works --sendmail-command='grep ^Subject: it works$ %' ../temp2
 
 # Test that the --output-auto-name parameter outputs what we expect
 $DARCS send --author=me -a --subject=it works --output test1.dpatch ../temp2
}

Context:

[add changelog entry for rollback.
David Roundy [EMAIL PROTECTED]**20080116212037] 
[rollback my simplification of conflict options for pull and apply.
David Roundy [EMAIL PROTECTED]**20080116211650] 
[eliminate apply_conflict_options and pull_[same] in favor of unified conflict_options.
David Roundy [EMAIL PROTECTED]**20080116205623] 
[reimplement rollback.
David Roundy [EMAIL PROTECTED]**20080116203644] 
[fix pull.pl test to show off rollback error.
David Roundy [EMAIL PROTECTED]**20080110230904] 
[Use http://darcs.net/repos/stable instead of http://abridgegame.org/darcs.
[EMAIL PROTECTED] 
[Add --{allow,dont-allow,mark}-conflicts to darcs pull.
[EMAIL PROTECTED]
 
 This patch also merge the --external option to pull_conflicts_options
 like with apply.
] 
[fix bug where get could produce a darcs-2 repository from a darcs-1 repo incorrectly.
David Roundy [EMAIL PROTECTED]**20080116194547] 
[fix replacePristine to work regardless of current working directory.
David Roundy [EMAIL PROTECTED]**20080116162528
 This is intended to be a property of all Repository functions except those
 that explicitly mention the current directory in their name.
] 
[treat errors in reading current pristine cache as corruption in darcs repair.
David Roundy [EMAIL PROTECTED]**20080116162427] 
[make withCurrentDirectory succeed even if old directory has been removed.
David Roundy [EMAIL PROTECTED]**20080116162358] 
[fixed bug triggered by conflict-doppleganger test.
David Roundy [EMAIL PROTECTED]**20080116161548] 
[make doppelganger test more verbose.
David Roundy [EMAIL PROTECTED]**20080116161421] 
[Fix darcs repair with darcs1 format.
[EMAIL PROTECTED]
 
 Using  withCurentDirectory  was  wrong  because this function wants to restore
 the  current  directory.  In  this  case it no longer exists (.../newpristine)
 because renamed to .../pristine.
] 
[Add a test case for darcs repair.
[EMAIL PROTECTED]
 
 In fact both darcs1 and hashed format are broken.
] 
[fix bugs in date parsing pointed out by Mark.
David Roundy [EMAIL PROTECTED]**20080115235341] 
[treat partially-specified dates as more vague matches.
David Roundy [EMAIL PROTECTED]**20080115213601
 i.e. if you --match date 2007 you'll get all the patches in 2007, not
 just those on January 1, 2007.
] 
[issue31, issue187: Update date matching so we test for an actual match in some cases, not just date parsing.
Mark Stosberg [EMAIL PROTECTED]**20080110030400
 This revealed some bugs which have yet to be fixed, so the test is still failing. 
] 
[fix perl bug script code.
David Roundy [EMAIL PROTECTED]**20080115215954] 
[add some changelog entries
Tommy Pettersson [EMAIL 

Re: [darcs-devel] darcs patch: Add --{allow, dont-allow, mark}-conflicts to darcs pull.

2008-01-17 Thread David Roundy
On Jan 17, 2008 9:59 AM, Tommy Pettersson [EMAIL PROTECTED] wrote:
 On Thu, Jan 17, 2008 at 03:19:43PM +0100, Nicolas Pouillard wrote:
  So  I  vote  for  having  --external-merge out the multi-choice group for 
  both
  pull and apply.

Sounds good.

 Yes, me too. And perhaps it should be renamed to
 --external-merger to reflect it does no longer perform a merge,
 but only selects the merger to use.

I definitely prefer the name --external-merge, or perhaps
--external-merge-conflicts.  The problem is that merger is a noun, not
a verb.

David
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Move rollback to another section of TheCommands.

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 04:48:57PM +0100, Nicolas Pouillard wrote:
 Excerpts from David Roundy's message of Thu Jan 17 16:36:16 +0100 2008:
  On Thu, Jan 17, 2008 at 12:56:42PM +, Nicolas Pouillard wrote:
   Thu Jan 17 13:53:40 CET 2008  [EMAIL PROTECTED]
 * Move rollback to another section of TheCommands.
  
  Content-Description: A darcs patch for your repository!
   
   New patches:
   
   [Move rollback to another section of TheCommands.
   [EMAIL PROTECTED] {
   hunk ./src/Darcs/TheCommands.lhs 71
Group_name Direct modification of the repository:,
Command_data tag,
Command_data setpref,
   -Command_data rollback,
Group_name Querying the repository:,
Command_data diff_command,
Command_data changes,
   hunk ./src/Darcs/TheCommands.lhs 81
Group_name Copying patches between repositories with 
   working copy update:,
Command_data pull,
Command_data obliterate, Hidden_command unpull,
   +Command_data rollback,
Command_data push,
Command_data send,
Command_data apply,
  
  This doesn't seem quite right, as rollback doesn't copy patches between
  repositories.  But then, neither does obliterate.  :(  I'm not sure how to
  best improve the organization here.
 
 It seems that obliterate, unpull and rollback deserve their own section :)

Yeah, that would be reasonable.  Something like Undoing previously
recorded changes? And maybe we could move unrecord into the same section?
It makes sense keeping it next to record, but doesn't make so much sense
for it to be far from obliterate.
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Check that using 'record --look-for-add --all' left an...

2008-01-17 Thread Nicolas Pouillard
Excerpts from David Roundy's message of Thu Jan 17 16:55:15 +0100 2008:
 On Thu, Jan 17, 2008 at 11:55:02AM +, Nicolas Pouillard wrote:
  Thu Jan 17 12:51:59 CET 2008  [EMAIL PROTECTED]
* Check that using 'record --look-for-add --all' left an empty pending 
  patch.
 
 Thanks for the patch! I'm working right now to get it into the bugs/
 directory, as I'm not quite sure how to fix this one...

Ok, but IMHO this makes --look-for-adds for more buggy than before.

-- 
Nicolas Pouillard aka Ertai
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] Roundup bug tracker at bugs.darcs.net switched to PostgreSQL backend

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 08:45:16AM -0500, Mark Stosberg wrote:
 
 Last night I switched the bug tracking system from using the slow 
 anydbms backend to a faster PostreSQL backend.

Thanks, Mark! It's already *much* snappier, which will make it considerably
easier to deal with.  :)

 This morning I noticed some e-mail communications to the bug tracker 
 were appearing in duplicate (but not others):
 
   http://bugs.darcs.net/issue590
   http://bugs.darcs.net/issue589
 
 If someone who has server access has a minute to take a look soon, that 
 would be great. Otherwise I can poke around tonight. As far as I'm 
 aware, I didn't change anything related to e-mail settings.

It could be that the report was just submitted twice... that's pretty
common, particularly if they get held up in moderation.
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Move rollback to another section of TheCommands.

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 12:56:42PM +, Nicolas Pouillard wrote:
 Thu Jan 17 13:53:40 CET 2008  [EMAIL PROTECTED]
   * Move rollback to another section of TheCommands.

Content-Description: A darcs patch for your repository!
 
 New patches:
 
 [Move rollback to another section of TheCommands.
 [EMAIL PROTECTED] {
 hunk ./src/Darcs/TheCommands.lhs 71
  Group_name Direct modification of the repository:,
  Command_data tag,
  Command_data setpref,
 -Command_data rollback,
  Group_name Querying the repository:,
  Command_data diff_command,
  Command_data changes,
 hunk ./src/Darcs/TheCommands.lhs 81
  Group_name Copying patches between repositories with 
 working copy update:,
  Command_data pull,
  Command_data obliterate, Hidden_command unpull,
 +Command_data rollback,
  Command_data push,
  Command_data send,
  Command_data apply,

This doesn't seem quite right, as rollback doesn't copy patches between
repositories.  But then, neither does obliterate.  :(  I'm not sure how to
best improve the organization here.
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Added test for issue381. (and 1 more)

2008-01-17 Thread Eric Kow
On 17/01/2008, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:
 Note: I had to edit the context of Marnix's patch to make it apply cleanly,

Argh, what bad writing.  What I meant was that just trying to apply
the patch would take far longer than I was willing to wait while darcs
did its commutations.  Being impatient, I just went in and swapped out
the contexts.

-- 
Eric Kow http://www.nltg.brighton.ac.uk/home/Eric.Kow
PGP Key ID: 08AC04F9
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] Roundup bug tracker at bugs.darcs.net switched to PostgreSQL backend

2008-01-17 Thread Mark Stosberg

Last night I switched the bug tracking system from using the slow 
anydbms backend to a faster PostreSQL backend.

This morning I noticed some e-mail communications to the bug tracker 
were appearing in duplicate (but not others):

  http://bugs.darcs.net/issue590
  http://bugs.darcs.net/issue589

If someone who has server access has a minute to take a look soon, that 
would be great. Otherwise I can poke around tonight. As far as I'm 
aware, I didn't change anything related to e-mail settings.

Mark

___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Add --{allow, dont-allow, mark}-conflicts to darcs pull.

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 05:36:41PM +0100, Tommy Pettersson wrote:
 On Thu, Jan 17, 2008 at 11:10:43AM -0500, David Roundy wrote:
  On Jan 17, 2008 9:59 AM, Tommy Pettersson [EMAIL PROTECTED] wrote:
   Yes, me too. And perhaps it should be renamed to
   --external-merger to reflect it does no longer perform a merge,
   but only selects the merger to use.
  
  I definitely prefer the name --external-merge, or perhaps
  --external-merge-conflicts.  The problem is that merger is a noun, not
  a verb.
 
 Hm, being a noun was actually my point to why I felt it was a
 better name for an option telling what external merger to use.
 But I'm not a native English speaker, so my preferences may be
 very wrong :-), and changing the name of an option can have
 other bad implications.

Right, my grammar mistake.  But merger does not mean something that
merges as eater would mean something that eats, but rather an act or
instance of merging.
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Add --{allow, dont-allow, mark}-conflicts to darcs pull.

2008-01-17 Thread Tommy Pettersson
On Thu, Jan 17, 2008 at 11:10:43AM -0500, David Roundy wrote:
 On Jan 17, 2008 9:59 AM, Tommy Pettersson [EMAIL PROTECTED] wrote:
  Yes, me too. And perhaps it should be renamed to
  --external-merger to reflect it does no longer perform a merge,
  but only selects the merger to use.
 
 I definitely prefer the name --external-merge, or perhaps
 --external-merge-conflicts.  The problem is that merger is a noun, not
 a verb.

Hm, being a noun was actually my point to why I felt it was a
better name for an option telling what external merger to use.
But I'm not a native English speaker, so my preferences may be
very wrong :-), and changing the name of an option can have
other bad implications.


-- 
Tommy Pettersson [EMAIL PROTECTED]
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] [issue589] Impossible case in darcs PatchRead.lhs or Patch/Read.lhs

2008-01-17 Thread Michael Abbott
 Michael, could this download be passing through a proxy that might 
 modify the files?

 Could you diff the contents of your _darcs/patches directory agains that of 
 the
 attached yi.tar.bz2?

Absolute, and this was definitely the trigger.  It took me a while to 
figure it out (there are some 1,500 patches in Yi) but, yes, for whatever 
reason our web poxy decided to transform one patch into something 
completely different.

So perhaps this transforms the issue from an outright bug into an 
unfriendly behaviour.  I see two points:

1. The error message implies that the problem is entirely the fault of 
darcs (and so of course gives little hint about identifying the true 
culprit).

2. Evidently darcs fails to do any checking on the patches before 
processing them.  A CRC checksum might be a good thing.

Actually, the fact that darcs fetchs each of 1500 patches as separate http 
requests is itself rather painful: takes much longer than it would if this 
could be done as a single http or https request -- and using https would 
bypass any brain damaged proxy to further benefit!
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] [issue589] buggy error message: Impossible case in darcs PatchRead.lhs or Patch/Read.lhs

2008-01-17 Thread David Roundy


On Thu, Jan 17, 2008 at 04:57:52PM +, Michael Abbott wrote:
 Michael, could this download be passing through a proxy that might
 modify the files?
 
 Could you diff the contents of your _darcs/patches directory agains that
 of the attached yi.tar.bz2?
 
 Absolute, and this was definitely the trigger.  It took me a while to 
 figure it out (there are some 1,500 patches in Yi) but, yes, for whatever 
 reason our web poxy decided to transform one patch into something 
 completely different.
 
 So perhaps this transforms the issue from an outright bug into an 
 unfriendly behaviour.  I see two points:
 
 1. The error message implies that the problem is entirely the fault of 
 darcs (and so of course gives little hint about identifying the true 
 culprit).

I'd say this is the bug (and will retitle it accordingly).  We should state
what's actually happening here.

 2. Evidently darcs fails to do any checking on the patches before 
 processing them.  A CRC checksum might be a good thing.

This is handled in the upcoming --darcs-2 and --hashed formats.

 Actually, the fact that darcs fetchs each of 1500 patches as separate http 
 requests is itself rather painful: takes much longer than it would if this 
 could be done as a single http or https request -- and using https would 
 bypass any brain damaged proxy to further benefit!

This is another issue.  You could certainly use https if you like (and if
your libcurl supports it), just change your URL.  We're working on request
pipelining for darcs 2.
-- 
David Roundy
Department of Physics
Oregon State University

--
title: Impossible case in darcs PatchRead.lhs or Patch/Read.lhs - buggy error 
message: Impossible case in darcs PatchRead.lhs or Patch/Read.lhs

__
Darcs bug tracker [EMAIL PROTECTED]
http://bugs.darcs.net/issue589
__
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] darcs patch: Refactor test/bug harness calls in Makef... (and 2 more)

2008-01-17 Thread E . Y . Kow
There's a definite drawback to this makefile refactor, in that now
we're really fragile/sensitive to whitespace and other annoying
things.  Then again, fixing the makefile is a little bit easier.

Thu Jan 17 17:17:06 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Refactor test/bug harness calls in Makefile.

Thu Jan 17 17:22:15 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Fix cannot stat `../tests/{lib,perl_harness}' in Makefile.

Thu Jan 17 16:23:29 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Canonize Andrew J. Kroll and Erik Schnetter.
  
  Wrong email address for Erik.  Googled name for Andrew.


New patches:

[Refactor test/bug harness calls in Makefile.
Eric Kow [EMAIL PROTECTED]**20080117171706] {
hunk ./GNUmakefile 331
 PERL_HARNESS := perl perl_harness
 SHELL_HARNESS := perl shell_harness
 
-test_shell: darcs
-	@echo Running sh tests on old-fashioned repositories...
-	@rm -rf test_shell.dir  cp -R tests test_shell.dir
-	@cd test_shell.dir  rm -rf .darcs; \
+# $1 - description
+# $2 - setup
+# $3 - discard
+# $4 - type
+# $5 - harness
+define harness
+	@echo Running $4 tests on $1 repositories...
+	@rm -rf test-$4-$1.dir  cp -R tests test-$4-$1.dir
+	@cd test-$4-$1.dir  rm -rf .darcs; mkdir .darcs;\
+	 $2;\
+	 if [ -r $(TEST_FILTER_FILE) ];\
+	 then grep \.$4 $(TEST_FILTER_FILE) | grep -v '^#' | $3 | xargs $5; \
+	 else ls *.$4 | sort -r | $3 | xargs $5; fi
+	@echo Done running tests on $1 repositories...
+endef
+
+# $1 - description
+# $2 - setup
+# $3 - discard
+# $4 - type
+# $5 - harness
+define bug_harness
+	@echo Demonstrating $4 bugs on $1 repositories...
+	@rm -rf bugs-$4-$1.dir  cp -R bugs bugs-$4-$1.dir
+	@cd bugs-$4-$1.dir  rm -rf .darcs; mkdir .darcs;\
+	 cp -R ../tests/{lib,perl_harness} .;\
+	 $2;\
 	 if [ -r $(TEST_FILTER_FILE) ];\
hunk ./GNUmakefile 359
-	 then grep \.sh $(TEST_FILTER_FILE) | grep -v '^#' | xargs $(SHELL_HARNESS); \
-	 else ls *.sh | sort -r | xargs $(SHELL_HARNESS); fi
-	@echo Done running tests on old-fashioned repositories...
+	 then bugs=1 grep \.$4 $(TEST_FILTER_FILE) | grep -v '^#' | $3 | xargs $5; \
+	 else bugs=1 ls *.$4 | sort -r | $3 | xargs $5; fi
+	@echo Done demonstrating bugs on $1 repositories...
+endef
+
+# $1 - description
+# $2 - setup
+# $3 - discard
+shell_harness=$(call harness,$1,$2,$3,sh,$(SHELL_HARNESS))
+perl_harness=$(call harness,$1,$2,$3,perl,$(PERL_HARNESS))
+shell_bugs=$(call bug_harness,$1,$2,$3,sh,$(SHELL_HARNESS))
+perl_bugs=$(call bug_harness,$1,$2,$3,perl,$(PERL_HARNESS))
+
+test_shell: darcs
+	$(call shell_harness,old-fashioned,:,cat)
 
 # for the format2 tests, we skip the hashed_inventory.sh test, since explicitly
 # creates the old-fashioned format that's incompatible with darcs-2.
hunk ./GNUmakefile 378
 test_shell_format2: darcs
-	@echo Running tests on darcs-2 repositories...
-	@rm -rf test_shell_format2.dir  cp -R tests test_shell_format2.dir
-	@cd test_shell_format2.dir  \
-	 rm -rf .darcs; \
-	 mkdir .darcs; \
-	 echo ALL --darcs-2  .darcs/defaults; \
-	 if [ -r $(TEST_FILTER_FILE) ];\
-	 then grep \.sh $(TEST_FILTER_FILE) | grep -v '^#' | \
-	  grep -v hashed_inventory.sh | xargs $(SHELL_HARNESS); \
-	 else ls *.sh | sort -r | grep -v hashed_inventory.sh | xargs $(SHELL_HARNESS); fi
-	@echo Done running tests on darcs-2 repositories...
+	$(call shell_harness,darcs-2,\
+	 echo ALL --darcs-2  .darcs/defaults,\
+	 grep -v hashed_inventory.sh)
 
 test_shell_hashed: darcs
hunk ./GNUmakefile 383
-	@echo Running tests on hashed repositories...
-	@rm -rf test_shell_hashed.dir  cp -R tests test_shell_hashed.dir
-	@cd test_shell_hashed.dir  \
-	 rm -rf .darcs; \
-	 mkdir .darcs; \
-	 echo ALL --hashed  .darcs/defaults; \
-	 if [ -r $(TEST_FILTER_FILE) ];\
-	 then grep \.sh $(TEST_FILTER_FILE) | grep -v '^#' | xargs $(SHELL_HARNESS); \
-	 else ls *.sh | sort | xargs $(SHELL_HARNESS); fi
-	@echo Done running tests on hashed repositories...
+	$(call shell_harness,hashed,\
+	 echo ALL --hashed  .darcs/defaults,cat)
 
 test_perl: darcs
hunk ./GNUmakefile 387
-	@echo Running sh tests on old-fashioned reositories...
-	@rm -rf test_perl.dir  cp -R tests test_perl.dir
-	@cd test_perl.dir  rm -rf .darcs; \
-	 if [ -r $(TEST_FILTER_FILE) ];\
-	 then grep \.pl $(TEST_FILTER_FILE) | grep -v '^#' | xargs $(PERL_HARNESS); \
-	 else ls *.pl | sort -r | xargs $(PERL_HARNESS); fi
-	@echo Done running tests on old-fashioned repositories...
+	$(call perl_harness,old-fashioned,:,cat)
 
 test_perl_format2: darcs
hunk ./GNUmakefile 390
-	@echo Running tests on darcs-2 repositories...
-	@rm -rf test_perl_format2.dir  cp -R tests test_perl_format2.dir
-	@cd test_perl_format2.dir  \
-	 rm -rf .darcs; \
-	 mkdir .darcs; \
-	 echo ALL --darcs-2  .darcs/defaults; \
-	 if [ -r $(TEST_FILTER_FILE) ];\
-	 then grep \.pl $(TEST_FILTER_FILE) | grep -v '^#' | xargs $(PERL_HARNESS); \
-	 else ls *.pl | sort -r | xargs $(PERL_HARNESS); fi
-	@echo Done running tests on darcs-2 repositories...
+	$(call perl_harness,darcs-2,\
+	 echo ALL 

[darcs-devel] darcs patch: Actually run perl tests. (and 1 more)

2008-01-17 Thread E . Y . Kow
Not sure this is the right place to put the 'Checking for conflicts' message
though.

Thu Jan 17 20:01:49 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Actually run perl tests.
  Fix my harness refactor.

Thu Jan 17 20:12:08 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Tell user when we are checking for conflicts.
  Otherwise we mislead the user into thinking the slow part is the
  'diffing dir...'


New patches:

[Actually run perl tests.
Eric Kow [EMAIL PROTECTED]**20080117200149
 Fix my harness refactor.
] {
hunk ./GNUmakefile 335
 # $2 - setup
 # $3 - discard
 # $4 - type
-# $5 - harness
+# $5 - extension
+# $6 - harness
 define harness
 	@echo Running $4 tests on $1 repositories...
 	@rm -rf test-$4-$1.dir  cp -R tests test-$4-$1.dir
hunk ./GNUmakefile 343
 	@cd test-$4-$1.dir  rm -rf .darcs; mkdir .darcs;\
 	 $2;\
 	 if [ -r $(TEST_FILTER_FILE) ];\
-	 then grep \.$4 $(TEST_FILTER_FILE) | grep -v '^#' | $3 | xargs $5; \
-	 else ls *.$4 | sort -r | $3 | xargs $5; fi
+	 then grep \.$5 $(TEST_FILTER_FILE) | grep -v '^#' | $3 | xargs $6; \
+	 else ls *.$5 | sort -r | $3 | xargs $6; fi
 	@echo Done running tests on $1 repositories...
 endef
 
hunk ./GNUmakefile 348
-# $1 - description
-# $2 - setup
-# $3 - discard
-# $4 - type
-# $5 - harness
 define bug_harness
 	@echo Demonstrating $4 bugs on $1 repositories...
 	@rm -rf bugs-$4-$1.dir  cp -R bugs bugs-$4-$1.dir
hunk ./GNUmakefile 356
 	 cp -R ../tests/perl_harness .;\
 	 $2;\
 	 if [ -r $(TEST_FILTER_FILE) ];\
-	 then bugs=1 grep \.$4 $(TEST_FILTER_FILE) | grep -v '^#' | $3 | xargs $5; \
-	 else bugs=1 ls *.$4 | sort -r | $3 | xargs $5; fi
+	 then bugs=1 grep \.$5 $(TEST_FILTER_FILE) | grep -v '^#' | $3 | xargs $6; \
+	 else bugs=1 ls *.$5 | sort -r | $3 | xargs $6; fi
 	@echo Done demonstrating bugs on $1 repositories...
 endef
 
hunk ./GNUmakefile 364
 # $1 - description
 # $2 - setup
 # $3 - discard
-shell_harness=$(call harness,$1,$2,$3,sh,$(SHELL_HARNESS))
-perl_harness=$(call harness,$1,$2,$3,perl,$(PERL_HARNESS))
-shell_bugs=$(call bug_harness,$1,$2,$3,sh,$(SHELL_HARNESS))
-perl_bugs=$(call bug_harness,$1,$2,$3,perl,$(PERL_HARNESS))
+shell_harness=$(call harness,$1,$2,$3,shell,sh,$(SHELL_HARNESS))
+perl_harness=$(call harness,$1,$2,$3,perl,pl,$(PERL_HARNESS))
+shell_bugs=$(call bug_harness,$1,$2,$3,shell,sh,$(SHELL_HARNESS))
+perl_bugs=$(call bug_harness,$1,$2,$3,perl,pl,$(PERL_HARNESS))
 
 test_shell: darcs
 	$(call shell_harness,old-fashioned,:,cat)
}
[Tell user when we are checking for conflicts.
Eric Kow [EMAIL PROTECTED]**20080117201208
 Otherwise we mislead the user into thinking the slow part is the
 'diffing dir...'
] hunk ./src/Darcs/Repository/Internal.lhs 452
  pend' :/\: pw - return $ merge (pc :\/: anonymous (fromPrims pend) :: NilFL)
  let pwprim = joinPatches $ mapFL_FL patchcontents pw
  Sealed standard_resolved_pw = standard_resolution pwprim
+ putVerbose Checking for conflicts...
  mapM_ backupByCopying $ list_touched_files standard_resolved_pw
  have_conflicts - announce_merge_conflicts cmd opts standard_resolved_pw
  have_unrecorded_conflicts - check_unrecorded_conflicts opts pc

Context:

[move debugMessage to Darcs.Utils.
David Roundy [EMAIL PROTECTED]**20080117190043] 
[fix bug in running of test suite with hashed repos and add test for bug.
David Roundy [EMAIL PROTECTED]**20080117185403] 
[add a couple more debug messages.
David Roundy [EMAIL PROTECTED]**20080117185059] 
[clean up debug output in record.
David Roundy [EMAIL PROTECTED]**20080117183922] 
[fix bug where record --look-for-adds left patches in pending.
David Roundy [EMAIL PROTECTED]**20080117182618] 
[mark look_for_add.sh as buggy.
David Roundy [EMAIL PROTECTED]**20080117160348] 
[Check that using 'record --look-for-add --all' left an empty pending patch.
[EMAIL PROTECTED] 
[Canonize Andrew J. Kroll and Erik Schnetter.
Eric Kow [EMAIL PROTECTED]**20080117162329
 
 Wrong email address for Erik.  Googled name for Andrew.
] 
[Fix cannot stat `../tests/{lib,perl_harness}' in Makefile.
Eric Kow [EMAIL PROTECTED]**20080117172215] 
[Refactor test/bug harness calls in Makefile.
Eric Kow [EMAIL PROTECTED]**20080117171706] 
[update docs on rollback.
David Roundy [EMAIL PROTECTED]**20080117152948] 
[libwww: do not fail when server reports Content-Encoding.
Dmitry Kurochkin [EMAIL PROTECTED]**20080117121621] 
[libwww: use waitNextUrl instead of libwww_wait_next_url in copyUrl.
Dmitry Kurochkin [EMAIL PROTECTED]**20080117121544] 
[Move issue381 test to bugs directory.
Eric Kow [EMAIL PROTECTED]**20080117161704] 
[Added test for issue381.
Marnix Klooster [EMAIL PROTECTED]**20070109210835] 
[add changelog entry for rollback.
David Roundy [EMAIL PROTECTED]**20080116212037] 
[rollback my simplification of conflict options for pull and apply.
David Roundy [EMAIL PROTECTED]**20080116211650] 
[eliminate apply_conflict_options and pull_[same] in favor of unified conflict_options.
David Roundy [EMAIL PROTECTED]**20080116205623] 
[reimplement rollback.

Re: [darcs-devel] darcs patch: Actually run perl tests. (and 1 more)

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 08:14:54PM +, [EMAIL PROTECTED] wrote:
 Not sure this is the right place to put the 'Checking for conflicts' message
 though.
 
 Thu Jan 17 20:01:49 GMT 2008  Eric Kow [EMAIL PROTECTED]
   * Actually run perl tests.
   Fix my harness refactor.
 
 Thu Jan 17 20:12:08 GMT 2008  Eric Kow [EMAIL PROTECTED]
   * Tell user when we are checking for conflicts.
   Otherwise we mislead the user into thinking the slow part is the
   'diffing dir...'

Thanks for the patch! However, I've now moved both of these messages to
debugMessage, since I'd rather keep --verbose free for useful
(i.e. non-progress) output.
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Add test for issue194. (and 1 more)

2008-01-17 Thread David Roundy
On Thu, Jan 17, 2008 at 08:58:02PM +, [EMAIL PROTECTED] wrote:
 Some tests from the bug tracker (thanks to their respective
 reporters).  Not neccessarily sanity-checked.
 
 Thu Jan 17 20:41:47 GMT 2008  Eric Kow [EMAIL PROTECTED]
   * Add test for issue194.
   Prior to darcs2, this triggered a bug in function reconcile_unwindings.
 
 Thu Jan 17 20:57:05 GMT 2008  Eric Kow [EMAIL PROTECTED]
   * issue549 - Pekka Pessi's rollback test.

Applied.  Thanks!
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] [Revctrl] DARCS correctness question

2008-01-17 Thread William Uther

On 17/01/2008, at 11:45 PM, Ian Lynagh wrote:

 On Thu, Jan 17, 2008 at 01:57:23PM +1100, William Uther wrote:

 If I have two Darcs workspaces, each of which have the same set of
 patches, but in different orders, should these workspaces be
 identical (even in the presence of conflicts)?

 The pristine trees should be, but the way the conflicts are marked in
 the working directory need not be.

In OT theory, a set of patches that are all transformed to apply should
result in _identical_ output, regardless of order.  If the output really
is identical, then shouldn't the conflicts be marked up in the same way?
My understanding from this that the merger patches are NOT identical.

You claim that this isn't a problem - i.e. you seem to be claiming that
merger patches do not need to obey the same correctness requirements
as normal patches.  Can you point me to a formal justification for this?

Thanks,

Will:-}

___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] darcs patch: Add test for issue194. (and 1 more)

2008-01-17 Thread E . Y . Kow
Some tests from the bug tracker (thanks to their respective
reporters).  Not neccessarily sanity-checked.

Thu Jan 17 20:41:47 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Add test for issue194.
  Prior to darcs2, this triggered a bug in function reconcile_unwindings.

Thu Jan 17 20:57:05 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * issue549 - Pekka Pessi's rollback test.


New patches:

[Add test for issue194.
Eric Kow [EMAIL PROTECTED]**20080117204147
 Prior to darcs2, this triggered a bug in function reconcile_unwindings.
] {
addfile ./tests/issue194.sh
hunk ./tests/issue194.sh 1
+set -ev
+
+test $DARCS || DARCS=$PWD/../darcs
+ACTUAL_DARCS=`which $DARCS`
+DARCSPATH=`dirname $ACTUAL_DARCS`
+PATH=$DARCSPATH:$PATH
+export PATH
+
+mkdir temp1; cd temp1 ; $DARCS init ; cd ..
+$DARCS get temp1 temp2
+cd temp2/ ; echo 'x'  _darcs/prefs/author ; cd ..
+cd temp1/ ; echo 'x'  _darcs/prefs/author ; cd ..
+
+cd temp1/
+touch test ; $DARCS record
+$DARCS add test ; $DARCS record -a -m 'test'
+$DARCS mv test best ; $DARCS record -a -m 'test - best'
+$DARCS mv best test ; $DARCS record -a -m 'best - test'
+cd ..
+
+cd temp2/
+touch test2
+$DARCS add test2 ; $DARCS record -a -m 'test2'
+$DARCS mv test2 best ; $DARCS record -a -m 'test2 - best'
+$DARCS mv best test2 ; $DARCS record -a -m 'best - test2'
+
+$DARCS pull ../temp1/ -a
+cd ..
+
+rm -rf temp1 temp2
}

[issue549 - Pekka Pessi's rollback test.
Eric Kow [EMAIL PROTECTED]**20080117205705] {
addfile ./tests/rollback.sh
hunk ./tests/rollback.sh 1
+set -ev
+
+test $DARCS || DARCS=$PWD/../darcs
+ACTUAL_DARCS=`which $DARCS`
+DARCSPATH=`dirname $ACTUAL_DARCS`
+PATH=$DARCSPATH:$PATH
+export PATH
+
+range=0 1 2
+
+mkdir temp1  cd temp1  $DARCS init
+touch f  $DARCS add f
+for i in $range
+do
+  echo $i  f  $DARCS record -A me --ignore-time -m p$i --all f
+done
+
+cd ..  mkdir temp2  cd temp2  $DARCS init
+
+set -x
+
+: Demonstrate problem with regrem
+for i in $range
+do
+  $DARCS pull --patch p$i ../temp1 --all
+  if $DARCS whatsnew ; then
+  : Resolve conflict - rollback our patch
+  $DARCS revert --all
+  yes | $DARCS rollback --patch-name x0
+  $DARCS revert --all
+  fi
+  : Create local change and record it
+  echo X$i  f  $DARCS record -A me --ignore-time -m x$i --all f
+done
hunk ./tests/rollback.sh 36
+cd ..
+rm -rf temp1 temp2
+
}

Context:

[move debugMessage to Darcs.Utils.
David Roundy [EMAIL PROTECTED]**20080117190043] 
[fix bug in running of test suite with hashed repos and add test for bug.
David Roundy [EMAIL PROTECTED]**20080117185403] 
[add a couple more debug messages.
David Roundy [EMAIL PROTECTED]**20080117185059] 
[clean up debug output in record.
David Roundy [EMAIL PROTECTED]**20080117183922] 
[fix bug where record --look-for-adds left patches in pending.
David Roundy [EMAIL PROTECTED]**20080117182618] 
[mark look_for_add.sh as buggy.
David Roundy [EMAIL PROTECTED]**20080117160348] 
[Check that using 'record --look-for-add --all' left an empty pending patch.
[EMAIL PROTECTED] 
[Canonize Andrew J. Kroll and Erik Schnetter.
Eric Kow [EMAIL PROTECTED]**20080117162329
 
 Wrong email address for Erik.  Googled name for Andrew.
] 
[Fix cannot stat `../tests/{lib,perl_harness}' in Makefile.
Eric Kow [EMAIL PROTECTED]**20080117172215] 
[Refactor test/bug harness calls in Makefile.
Eric Kow [EMAIL PROTECTED]**20080117171706] 
[update docs on rollback.
David Roundy [EMAIL PROTECTED]**20080117152948] 
[libwww: do not fail when server reports Content-Encoding.
Dmitry Kurochkin [EMAIL PROTECTED]**20080117121621] 
[libwww: use waitNextUrl instead of libwww_wait_next_url in copyUrl.
Dmitry Kurochkin [EMAIL PROTECTED]**20080117121544] 
[Move issue381 test to bugs directory.
Eric Kow [EMAIL PROTECTED]**20080117161704] 
[Added test for issue381.
Marnix Klooster [EMAIL PROTECTED]**20070109210835] 
[add changelog entry for rollback.
David Roundy [EMAIL PROTECTED]**20080116212037] 
[rollback my simplification of conflict options for pull and apply.
David Roundy [EMAIL PROTECTED]**20080116211650] 
[eliminate apply_conflict_options and pull_[same] in favor of unified conflict_options.
David Roundy [EMAIL PROTECTED]**20080116205623] 
[reimplement rollback.
David Roundy [EMAIL PROTECTED]**20080116203644] 
[fix pull.pl test to show off rollback error.
David Roundy [EMAIL PROTECTED]**20080110230904] 
[Use http://darcs.net/repos/stable instead of http://abridgegame.org/darcs.
[EMAIL PROTECTED] 
[Add --{allow,dont-allow,mark}-conflicts to darcs pull.
[EMAIL PROTECTED]
 
 This patch also merge the --external option to pull_conflicts_options
 like with apply.
] 
[fix bug where get could produce a darcs-2 repository from a darcs-1 repo incorrectly.
David Roundy [EMAIL PROTECTED]**20080116194547] 
[fix replacePristine to work regardless of current working directory.
David Roundy [EMAIL PROTECTED]**20080116162528
 This is intended to be a property of all Repository functions except those
 that explicitly mention the current directory in their name.
] 
[treat errors 

Re: [darcs-devel] [Revctrl] DARCS correctness question

2008-01-17 Thread David Roundy
On Fri, Jan 18, 2008 at 08:39:43AM +1100, William Uther wrote:
 On 17/01/2008, at 11:45 PM, Ian Lynagh wrote:
  On Thu, Jan 17, 2008 at 01:57:23PM +1100, William Uther wrote:
  If I have two Darcs workspaces, each of which have the same set of
  patches, but in different orders, should these workspaces be
  identical (even in the presence of conflicts)?
 
  The pristine trees should be, but the way the conflicts are marked in
  the working directory need not be.
 
 In OT theory, a set of patches that are all transformed to apply should
 result in _identical_ output, regardless of order.  If the output really
 is identical, then shouldn't the conflicts be marked up in the same way?
 My understanding from this that the merger patches are NOT identical.

 You claim that this isn't a problem - i.e. you seem to be claiming that
 merger patches do not need to obey the same correctness requirements
 as normal patches.  Can you point me to a formal justification for this?

The patches aren't identical because they're in a different order.  It's
perfectly normal in darcs that changes in different order are described by
different patches--in fact it's the basis of the whole system.  If you
reorder the changes into the same order, then the patches are the same.
Merger patches do obey precisely the same correctness requirements as any
normal patches.

The conflict marking does depend on the order of changes in the repository,
but this doesn't really matter, since conflict-marking is not fundamental
to how darcs works.  It's something that's done to the working directory
for the convenience of the user.  We could remove this feature and darcs
would be just as correct (although rather more awkward to use).
-- 
David Roundy
Department of Physics
Oregon State University
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] a measurement of using 7z instead of gz to compress patches

2008-01-17 Thread John Meacham
On Thu, Jan 17, 2008 at 10:02:40AM +0900, Stephen J. Turnbull wrote:
 zooko writes:
 
   In short, it probably isn't worth it, unless the new repository  
   formats (which I haven't looked at) tend to bundle more patches  
   together into one file for the compression tool to find redundancy in:
 
 Better to use zip format than tar, as zip has an index (that's why
 it's used by jar files and Python eggs, IIRC).  Doesn't 7zip have a
 full archive mode like zip?

Well, the tar version compresses much better than zip because it is
streaming and doesn't have an index. since you tar then gzip, it doesn't
compress each patch independently but rather compresses a single stream
containing all the patches. since patches are extremely similar, this
results in substantial improvements over individually compressing each
file like zip does in order to individually access them via its index.

John

-- 
John Meacham - ⑆repetae.net⑆john⑈
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] [Revctrl] DARCS correctness question

2008-01-17 Thread Stephen J. Turnbull
William Uther writes:

  In OT theory, a set of patches that are all transformed to apply should
  result in _identical_ output, regardless of order.  If the output really
  is identical, then shouldn't the conflicts be marked up in the same way?

Why would you expect that?  Merger markup expresses a superposition
(hello, physicists!) of two texts; there's always a choice of order
when serializing.

  My understanding from this that the merger patches are NOT identical.

The patches are the same, the notation is changed.  That is, like most
systems, darcs marks the conflicts like this:

 status quo post patch applied first temporally
atext
atext
===
btext
btext
btext
 conflicting change due to patch applied second temporally

not

 changes proposed by patch earlier in some arbitrary but global order
atext
atext
===
btext
btext
btext
 changes proposed by patch later in some arbitrary but global order

The latter will give consistent results, I think, but the former
definitely will be nondeterministic.

Doing this the way you expect *and* in a way that is easy for users to
understand is hard, I suspect.  For example, in git, Mercurial, or
Darcs, you could just sort on some handy SHA1, but this would probably
be confusing in the best of all possible world for the case of cherry-
picking exactly one patch, because sometimes mine would appear on
top and sometimes yours would appear on top, and the SHA1s are not
human-meaningful.  In the world we live in where most systems give
status quo status to the patch applied to the repo earlier in temporal
order, I'm sure it would disconcert most users.
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] [Revctrl] DARCS correctness question

2008-01-17 Thread William Uther

On 18/01/2008, at 8:57 AM, David Roundy wrote:


 On Fri, Jan 18, 2008 at 08:39:43AM +1100, William Uther wrote:
 On 17/01/2008, at 11:45 PM, Ian Lynagh wrote:
 On Thu, Jan 17, 2008 at 01:57:23PM +1100, William Uther wrote:
 If I have two Darcs workspaces, each of which have the same set of
 patches, but in different orders, should these workspaces be
 identical (even in the presence of conflicts)?

 The pristine trees should be, but the way the conflicts are  
 marked in
 the working directory need not be.

 In OT theory, a set of patches that are all transformed to apply  
 should
 result in _identical_ output, regardless of order.  If the output  
 really
 is identical, then shouldn't the conflicts be marked up in the  
 same way?
 My understanding from this that the merger patches are NOT identical.

 You claim that this isn't a problem - i.e. you seem to be claiming  
 that
 merger patches do not need to obey the same correctness requirements
 as normal patches.  Can you point me to a formal justification for  
 this?

 The patches aren't identical because they're in a different order.   
 It's
 perfectly normal in darcs that changes in different order are  
 described by
 different patches--in fact it's the basis of the whole system.  If you
 reorder the changes into the same order, then the patches are the  
 same.

Yes.  But the resulting state after applying a series of patches  
should be
the same, regardless of the order in which you've commuted the patches.

 Merger patches do obey precisely the same correctness requirements  
 as any
 normal patches.

Ok.

 The conflict marking does depend on the order of changes in the  
 repository,
 but this doesn't really matter, since conflict-marking is not  
 fundamental
 to how darcs works.  It's something that's done to the working  
 directory
 for the convenience of the user.  We could remove this feature and  
 darcs
 would be just as correct (although rather more awkward to use).

Okie.  I think I understand this better now after Stephen's response.
Darcs' state is a partial order (represented using 'merger patches') and
the particular way you serialise that for display is irrelevant.

Thanks for the help,

Will:-}

___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Add --dont-allow-conflicts to darcs pull.

2008-01-17 Thread Ben Franksen
Wagner Ferenc wrote:
 Nicolas Pouillard [EMAIL PROTECTED] writes:
 Excerpts from Nicolas Pouillard's message of Wed Jan 16 11:23:52 +0100
 2008:
 Excerpts from Tommy Pettersson's message of Wed Jan 16 11:22:00 +0100
 2008:
 On Wed, Jan 16, 2008 at 02:52:45AM +, Nicolas Pouillard wrote:
 Wed Jan 16 03:47:06 CET 2008  [EMAIL PROTECTED]
   * Add --dont-allow-conflicts to darcs pull.
   
   It also adds --allow-conflicts that is the default behavior of pull.
 
 I only looked at this patch quickly, but it looks like it
 differs from the conflict options to the Apply command in a
 surprise-prone way. I think the options should be:
 
   --mark-conflicts(default behavior for Pull)
   --allow-conflicts(...but don't mark them)
   --dont-allow-conflicts(default behavior for Append)
 
 You're right, I will resubmit a patch then.

 I've just sent another patch (that amend this one).
 
 Speaking of this, wouldn't it be reasonable to make pull default to
 --dont-allow-conflicts if there are unrecorded changes in the repo?

Yes, please!!!

Cheers
Ben

___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] darcs patch: Add --{allow, dont-allow, mark}-conflicts to darcs pull.

2008-01-17 Thread Stephen J. Turnbull
Tommy Pettersson writes:

  So it should be --external-mergeror then? Just kidding! ;-)

--external-merge-tool, I think.  Too long, IMHO.
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


Re: [darcs-devel] [Revctrl] DARCS correctness question

2008-01-17 Thread Stephen J. Turnbull
William Uther writes:

   Why would you expect that?  Merger markup expresses a superposition
   (hello, physicists!) of two texts; there's always a choice of order
   when serializing.
  
  Well, in OT theory a large effort is made to make sure that the same
  serialization is made in all cases.  It is a bug if different orders
  appear.

That's one way of proving that the result is correct (you'll get an
empty diff).  But there are other ways of doing it, and if you choose
a particular serialization, you have to show that which serialization
is chosen doesn't matter.

  Ahh.  I think that might have cleared up my confusion.  Would it be
  correct to say that DARCS is versioning partially ordered text, and it
  is just choosing which total order to display to the user differently?

I don't have a good feeling for that.  It's a reasonable analogy, I
suppose.
___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] darcs patch: Issue395: avoid single letter patch name... (and 2 more)

2008-01-17 Thread Mark Stosberg
Thu Jan 17 21:06:34 EST 2008  Mark Stosberg [EMAIL PROTECTED]
  * Issue395: avoid single letter patch names in the test suite.  

Thu Jan 17 22:02:41 EST 2008  Mark Stosberg [EMAIL PROTECTED]
  * use --ignore-time in tests instead of sleep, for faster, more reliable 
results

Thu Jan 17 22:16:06 EST 2008  Mark Stosberg [EMAIL PROTECTED]
  * issue578: steve and monica test for rolling back a rollback

New patches:

[Issue395: avoid single letter patch names in the test suite.  
Mark Stosberg [EMAIL PROTECTED]**20080118020634] {
hunk ./tests/pull.pl 97
-darcs 'record -lam A --author [EMAIL PROTECTED]';
+darcs 'record -lam AA --author [EMAIL PROTECTED]';
hunk ./tests/pull.pl 99
-darcs 'record --ignore-times -lam B --author [EMAIL PROTECTED]';
+darcs 'record --ignore-times -lam BB --author [EMAIL PROTECTED]';
hunk ./tests/pull.pl 101
-darcs 'record --ignore-times -lam C --author [EMAIL PROTECTED]';
-like(echo_to_darcs(, rollback -p C -a -m unC -A me), qr/Finished rolling back/);
+darcs 'record --ignore-times -lam CC --author [EMAIL PROTECTED]';
+like(echo_to_darcs(, rollback -p CC -a -m unC -A me), qr/Finished rolling back/);
hunk ./tests/pull.pl 108
-like(echo_to_darcs(, rollback -p B -a -m unB -A me), qr/Finished rolling back/);
+like(echo_to_darcs(, rollback -p BB -a -m unB -A me), qr/Finished rolling back/);
}

[use --ignore-time in tests instead of sleep, for faster, more reliable results
Mark Stosberg [EMAIL PROTECTED]**20080118030241] {
hunk ./tests/changes.pl 37
-sleep 1; # helps make sure we detect changes. 
hunk ./tests/changes.pl 38
-my $out = darcs(qq(record -A x -a -m foo record num $i date.t));
+my $out = darcs(qq(record --ignore-time -A x -a -m foo record num $i date.t));
hunk ./tests/conflict-doppleganger.pl 50
-my $out = darcs record -A base -am 'adding a.txt';
+my $out = darcs record --ignore-time -A base -am 'adding a.txt';
hunk ./tests/conflict-doppleganger.pl 67
-my $out = darcs record -A $repo -am 'recording an identical change';
+my $out = darcs record --ignore-time -A $repo -am 'recording an identical change';
}

[issue578: steve and monica test for rolling back a rollback
Mark Stosberg [EMAIL PROTECTED]**20080118031606] {
addfile ./tests/steve_and_monica_rollback.sh
hunk ./tests/steve_and_monica_rollback.sh 1
+#!/bin/bash
+
+#  Issue578: A conflict rollback case for Darcs2
+
+darcs --version
+
+export EMAIL=tester
+
+rm -rf tmp_steve tmp_monica
+
+mkdir tmp_steve
+mkdir tmp_monica
+
+cd tmp_steve
+darcs init  --darcs-2
+echo A foo
+darcs add foo
+darcs record -Asteve -am 'Anote'
+
+# Should this be necessary?
+sleep 1;
+echo B foo
+darcs record -Asteve -am 'Bnote'
+
+# Show the history as Steve sees it.
+darcs changes -s
+echo ##
+
+cd ../tmp_monica
+darcs init --darcs-2
+echo Afoo
+darcs add foo
+echo Zbar
+darcs add bar
+darcs record -Amonica -am 'AZnote'
+darcs pull -a ../tmp_steve
+darcs changes
+echo ##
+yes | darcs rollback -a -m newpatch -A me --match 'exact Anote'
+
+# previous failure result: darcs failed:  cannot roll back a 'rollback' patch.
+
}

Context:

[issue549 - Pekka Pessi's rollback test.
Eric Kow [EMAIL PROTECTED]**20080117205705] 
[Add test for issue194.
Eric Kow [EMAIL PROTECTED]**20080117204147
 Prior to darcs2, this triggered a bug in function reconcile_unwindings.
] 
[fix issue381, send allows --edit-description with --output.
David Roundy [EMAIL PROTECTED]**20080117210250] 
[fix bug in pull.pl test.
David Roundy [EMAIL PROTECTED]**20080117205042] 
[make progress messages print with debugMessage.
David Roundy [EMAIL PROTECTED]**20080117203354] 
[Tell user when we are checking for conflicts.
Eric Kow [EMAIL PROTECTED]**20080117201208
 Otherwise we mislead the user into thinking the slow part is the
 'diffing dir...'
] 
[Actually run perl tests.
Eric Kow [EMAIL PROTECTED]**20080117200149
 Fix my harness refactor.
] 
[tiny cleanup in Send.
David Roundy [EMAIL PROTECTED]**20080117191703] 
[move debugMessage to Darcs.Utils.
David Roundy [EMAIL PROTECTED]**20080117190043] 
[fix bug in running of test suite with hashed repos and add test for bug.
David Roundy [EMAIL PROTECTED]**20080117185403] 
[add a couple more debug messages.
David Roundy [EMAIL PROTECTED]**20080117185059] 
[clean up debug output in record.
David Roundy [EMAIL PROTECTED]**20080117183922] 
[fix bug where record --look-for-adds left patches in pending.
David Roundy [EMAIL PROTECTED]**20080117182618] 
[Canonize Andrew J. Kroll and Erik Schnetter.
Eric Kow [EMAIL PROTECTED]**20080117162329
 
 Wrong email address for Erik.  Googled name for Andrew.
] 
[Fix cannot stat `../tests/{lib,perl_harness}' in Makefile.
Eric Kow [EMAIL PROTECTED]**20080117172215] 
[Refactor test/bug harness calls in Makefile.
Eric Kow [EMAIL PROTECTED]**20080117171706] 
[Move issue381 test to bugs directory.
Eric Kow [EMAIL PROTECTED]**20080117161704] 
[Added test for issue381.
Marnix Klooster [EMAIL PROTECTED]**20070109210835] 
[mark 

[darcs-devel] new bugs.darcs.net home page

2008-01-17 Thread Mark Stosberg

I have now updated the homepage of http://bugs.darcs.net to be more
useful.

It now runs a more useful query for the bugs to display by default,
eliminating bugs that are in any state of being resolved, wont-fix,
etc. This should make it easier to find bugs that actually need
attention.

Also, the number at the bottom of page is now also a useful indicator of
how many bugs are really open and need attention. That number is about
211 instead of over 500, as it was before.

This number still encompasses bugs that aren't urgent, are wishlist
items, or are stalled.

 Mark

-- 
http://mark.stosberg.com/


___
darcs-devel mailing list
darcs-devel@darcs.net
http://lists.osuosl.org/mailman/listinfo/darcs-devel


[darcs-devel] darcs patch: Refactor y/n prompts. (and 8 more)

2008-01-17 Thread Eric Kow
[Resending due to silly mailserver stuff.  Sorry for any noise]

Dusting off some old patches.  Might not actually be ready for
public consumption.

Fri Oct 19 22:33:07 BST 2007  Eric Kow [EMAIL PROTECTED]
  * Refactor y/n prompts.

Mon Nov  5 01:55:25 GMT 2007  Eric Kow [EMAIL PROTECTED]
  * Create ssh CM socket in $HOME/.darcs if possible.

Mon Nov  5 02:19:56 GMT 2007  Eric Kow [EMAIL PROTECTED]
  * Give ssh CM socket a unique name for each darcs process.
  Delete the socket in the unlikely event that a previous darcs had a socket
  with the same name left over.

Mon Nov  5 19:25:30 GMT 2007  Eric Kow [EMAIL PROTECTED]
  * Modernise Data.Map import.

Mon Nov  5 19:26:36 GMT 2007  Eric Kow [EMAIL PROTECTED]
  * Remove now obsolete wrapper for Map (we now require GHC = 6.4).

Mon Nov  5 01:29:30 GMT 2007  Eric Kow [EMAIL PROTECTED]
  * More concise backup warning.

Mon Nov 19 04:13:26 GMT 2007  Eric Kow [EMAIL PROTECTED]
  * Simplify getCurrentDirectorySansDarcs out of existence.
  
  It was buggy and needlessly complicated.

Mon Nov 19 17:44:22 GMT 2007  Eric Kow [EMAIL PROTECTED]
  * Fix corner case in sansDarcs.
  Pointed out by Kevin Quick.

Fri Jan 18 07:37:20 GMT 2008  Eric Kow [EMAIL PROTECTED]
  * Fix conflicts.
  - my sansDarcs
  - Kevin Quick's tempdir_loc simplifications


New patches:

[Refactor y/n prompts.
Eric Kow [EMAIL PROTECTED]**20071019213307] {
hunk ./src/Darcs/Commands/MarkConflicts.lhs 84
-   in the working directory.\nAre you sure? ) yn
+   in the working directory.\nAre you sure? )
replace ./src/Darcs/Commands/MarkConflicts.lhs [A-Za-z_0-9] promptChar promptYorn
hunk ./src/Darcs/Commands/Record.lhs 313
-do yorn - promptChar Do you want to add a long comment? yn
+do yorn - promptChar Do you want to add a long comment?
replace ./src/Darcs/Commands/Record.lhs [A-Za-z_0-9] promptChar promptYorn
hunk ./src/Darcs/Repository/Internal.lhs 502
-   ++ unwords fs++\nProceed?) yn
+   ++ unwords fs++\nProceed?)
hunk ./src/Darcs/Repository/Internal.lhs 713
-do yorn - promptChar
-   This operation will make unrevert impossible!\nProceed?
-   yn
+do yorn - promptChar This operation will make unrevert impossible!\nProceed?
replace ./src/Darcs/Repository/Internal.lhs [A-Za-z_0-9] promptChar promptYorn
hunk ./src/Darcs/Utils.lhs 14
-view_file, edit_file, promptChar, promptCharFancy, without_buffering,
+view_file, edit_file, promptYorn, promptCharFancy, without_buffering,
hunk ./src/Darcs/Utils.lhs 202
-promptChar :: String - [Char] - IO Char
-promptChar p chs = promptCharFancy p chs Nothing []
+promptYorn :: [Char] - IO Char
+promptYorn p = promptCharFancy p yn Nothing []
}

[Create ssh CM socket in $HOME/.darcs if possible.
Eric Kow [EMAIL PROTECTED]**20071105015525] {
hunk ./src/Darcs/External.hs 766
-  tmp - tempdir_loc
-  let tmpDarcsSsh = tmp ++ darcs-ssh
-  createDirectoryIfMissing False tmpDarcsSsh
-  return $ tmpDarcsSsh ++ / ++ addr
+  tmp - (fmap (/// .darcs) $ getEnv HOME)
+`catch` \_ - tempdir_loc
+  let tmpDarcsSsh = tmp /// darcs-ssh
+  createDirectoryIfMissing True tmpDarcsSsh
+  return $ tmpDarcsSsh /// addr
+
+(///) :: FilePath - FilePath - FilePath
+d /// f = d ++ / ++ f
}

[Give ssh CM socket a unique name for each darcs process.
Eric Kow [EMAIL PROTECTED]**20071105021956
 Delete the socket in the unlikely event that a previous darcs had a socket
 with the same name left over.
] {
hunk ./src/Darcs/External.hs 25
+import System.Posix.Process ( getProcessID )
hunk ./src/Darcs/External.hs 28
-  renameFile, renameDirectory, copyFile )
+  removeFile, renameFile, renameDirectory, copyFile )
hunk ./src/Darcs/External.hs 65
+#ifdef WIN32
+import Darcs.Utils ( showHexLen )
+import Data.Bits ( (..) )
+import System.Random ( randomIO )
+#endif
hunk ./src/Darcs/External.hs 751
+  removeFile cmPath `catch` \_ - return ()
hunk ./src/Darcs/External.hs 775
+#ifdef WIN32
+  r - randomIO
+  let suffix = (showHexLen 6 (r .. 0xFF :: Int))
+#else
+  suffix - show `fmap` getProcessID
+#endif
hunk ./src/Darcs/External.hs 783
-  return $ tmpDarcsSsh /// addr
+  return $ tmpDarcsSsh /// addr ++ suffix
}

[Modernise Data.Map import.
Eric Kow [EMAIL PROTECTED]**20071105192530] {
hunk ./src/Lcs.lhs 45
-import qualified Map ( lookup, empty, insertWith )
+import qualified Data.Map as Map ( lookup, empty, insertWith )
}

[Remove now obsolete wrapper for Map (we now require GHC = 6.4).
Eric Kow [EMAIL PROTECTED]**20071105192636] {
hunk ./GNUmakefile 50
-	Lcs.lhs Map.hs	\
+	Lcs.lhs \
hunk ./src/Map.hs 1
-{-# OPTIONS -cpp #-}
--- 
--- Copyright (C) 2004-5 Don Stewart - http://www.cse.unsw.edu.au/~dons
--- 
--- This program is free software; you can redistribute it and/or
--- modify it under the terms of the GNU