This patch cannot possibly destabilize the darcs executable, so it is fine to apply it. Also, I think it is a good idea.
Regards, Zooko New patches: [import James Webb's deps.pl [EMAIL PROTECTED] { adddir ./tools addfile ./tools/deps.pl hunk ./tools/deps.pl 1 +#!/usr/bin/perl -w +# +# Darcs patch dependency grapher v0.1. Usage: +# +# cd myrepo +# deps.pl [subset] | dot -Tps -o deps.eps +# gv deps.eps +# +# Where the optional 'subset' argument is the path to a repository +# which is a subset of the current one, in which case only the extra +# patches will be graphed. Both repositories must be local and not +# partial. +# +# Hint: Try using dot -Gsize=50,50 for large graphs, otherwise +# Ghostscript may fall over. +# +# WARNING: Darcs commands will be run against both repositories. They +# should be restored to their original condition afterwards, but +# things might break. +# +# Comments to james,webb#sygneca,com. +# +# ------------------------------------------------------------------------ +# Copyright (c) 2005 Sygneca Ltd. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License (GPL) +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# The full license text is at http://www.gnu.org/copyleft/gpl.html +# ------------------------------------------------------------------------ + +use FileHandle; +use IPC::Open2; +use Cwd; + +$pwd = getcwd(); + +# Create sentinel patch to avoid leaving darcs +system("touch DEPS_TEMPORARY_FILE"); +system("darcs add DEPS_TEMPORARY_FILE > /dev/null"); +system("darcs record -a --no-test -m DEPS_TEMPORARY_PATCH DEPS_TEMPORARY_FILE > /dev/null"); + +# Use a blank repo if none is supplied +if($ARGV[0]) { + chdir($ARGV[0]); +} else { + mkdir("/tmp/darcsdeps$$"); + chdir("/tmp/darcsdeps$$"); + system("darcs init"); +} + +# Start talking +open2(*IN, *OUT, "darcs pull '$pwd'"); + +$patches = []; + +# Get patch descriptions +parse_patch(); +$total = $patch->{total}-1; +while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { + $patches->[$patch->{num}] = $patch; + print OUT "w"; + parse_patch(); +} + +rewind_to(1); + +# Find dependencies by saying 'no' to each patch in turn and +# seeing which ones disappear. +while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { + print STDERR "\rExamining patch $patch->{num} of $total."; + $seen = []; + $dep = $patches->[$patch->{num}]; + print OUT "n"; + parse_patch(); + while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { + $seen->[$patch->{num}] = 1; + print OUT "w"; + parse_patch(); + } + for $i ($dep->{num}+1 .. $total) { + if(!$seen->[$i]) { + push(@{$patches->[$i]{deps}}, $dep); + } + } + rewind_to($dep->{num}); + print OUT "y"; + parse_patch(); +} + +# Clean up +print OUT "q"; +chdir($pwd); +system("rm -rf /tmp/darcsdeps$$"); +system("echo -n y | darcs unpull -p DEPS_TEMPORARY_PATCH > /dev/null"); +print STDERR "\rDone. \n"; + +# Simplify transitive deps +for $n (1..$#{$patches}) { + $patch = $patches->[$n]; + $v = {}; + for $d (@{$patch->{deps}}) { + simplify($d, $v); + } + $ndeps = []; + for $d (@{$patch->{deps}}) { + if(!$v->{$d->{num}}) { push(@$ndeps, $d); } + } + $patch->{deps} = $ndeps; +} + +# Spit out the dot file +print "digraph deps {\n"; +print "\trankdir=LR;\n"; +print "\tnode [ shape=box ];\n"; +for $p (1..$#$patches) { + ($t = $patches->[$p]{title}) =~ s/("|\\)/\\$1/g; + print "\tp$p [ label = \"$t\" ];\n"; + for $d (@{$patches->[$p]{deps}}) { + print "\tp$d->{num} -> p$p;\n"; + } +} +print "}\n"; + +sub simplify { + my ($p, $v) = @_; + for $d (@{$p->{deps}}) { + $v->{$d->{num}} = 1; + simplify($d, $v); + } +} + +sub rewind_to { + while($patch->{num} != $_[0]) { + # Hack to make Darcs re-ask about every patch + print OUT "kwk"; + parse_patch(); + parse_patch(); + parse_patch(); + } +} + +sub parse_patch { + $patch = {}; + chomp($_ = <IN>); + defined($_) or die; + while(/^$|ynWvxqadjk|Pulling from/i) { chomp($_ = <IN>); } + /(.*) (.*)/ or die $_; + $patch->{date} = $1; + $patch->{author} = $2; + chomp($_ = <IN>); + /^ (\*|UNDO:|tagged) (.*)/ or die $_; + $patch->{type} = $1; + $patch->{title} = ($1 eq "UNDO:" || $1 eq "tagged") ? $1 . " " .$2 : $2; + $patch->{desc} = ""; + $patch->{deps} = []; + my $l = ""; + while(defined($c = getc IN)) { + $l .= $c; + if($l =~ /^Shall I pull this patch\? \(([0-9]*)\/([0-9]*)\)/) { + $patch->{num} = $1; + $patch->{total} = $2; + return; + } + if($c eq "\n") { + $l =~ s/^ //; + $patch->{desc} .= $l; + $l = ""; + } + } + die $patch->{title}; +} } [Initial import Jamie Webb**20051207131433 Version fetched from http://www.abridgegame.org/pipermail/darcs-users/2005-June/007705.html Author: Jamie Webb ] { addfile ./darcs-deps hunk ./darcs-deps 1 +#!/usr/bin/perl -w +# +# Darcs patch dependency grapher v0.1. Usage: +# +# cd myrepo +# deps.pl [subset] | dot -Tps -o deps.eps +# gv deps.eps +# +# Where the optional 'subset' argument is the path to a repository +# which is a subset of the current one, in which case only the extra +# patches will be graphed. Both repositories must be local and not +# partial. +# +# Hint: Try using dot -Gsize=50,50 for large graphs, otherwise +# Ghostscript may fall over. +# +# WARNING: Darcs commands will be run against both repositories. They +# should be restored to their original condition afterwards, but +# things might break. +# +# Comments to james,webb#sygneca,com. +# +# ------------------------------------------------------------------------ +# Copyright (c) 2005 Sygneca Ltd. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License (GPL) +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# The full license text is at http://www.gnu.org/copyleft/gpl.html +# ------------------------------------------------------------------------ + +use FileHandle; +use IPC::Open2; +use Cwd; + +$pwd = getcwd(); + +# Create sentinel patch to avoid leaving darcs +system("touch DEPS_TEMPORARY_FILE"); +system("darcs add DEPS_TEMPORARY_FILE > /dev/null"); +system("darcs record -a --no-test -m DEPS_TEMPORARY_PATCH DEPS_TEMPORARY_FILE > /dev/null"); + +# Use a blank repo if none is supplied +if($ARGV[0]) { + chdir($ARGV[0]); +} else { + mkdir("/tmp/darcsdeps$$"); + chdir("/tmp/darcsdeps$$"); + system("darcs init"); +} + +# Start talking +open2(*IN, *OUT, "darcs pull '$pwd'"); + +$patches = []; + +# Get patch descriptions +parse_patch(); +$total = $patch->{total}-1; +while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { + $patches->[$patch->{num}] = $patch; + print OUT "w"; + parse_patch(); +} + +rewind_to(1); + +# Find dependencies by saying 'no' to each patch in turn and +# seeing which ones disappear. +while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { + print STDERR "\rExamining patch $patch->{num} of $total."; + $seen = []; + $dep = $patches->[$patch->{num}]; + print OUT "n"; + parse_patch(); + while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { + $seen->[$patch->{num}] = 1; + print OUT "w"; + parse_patch(); + } + for $i ($dep->{num}+1 .. $total) { + if(!$seen->[$i]) { + push(@{$patches->[$i]{deps}}, $dep); + } + } + rewind_to($dep->{num}); + print OUT "y"; + parse_patch(); +} + +# Clean up +print OUT "q"; +chdir($pwd); +system("rm -rf /tmp/darcsdeps$$"); +system("echo -n y | darcs unpull -p DEPS_TEMPORARY_PATCH > /dev/null"); +print STDERR "\rDone. \n"; + +# Simplify transitive deps +for $n (1..$#{$patches}) { + $patch = $patches->[$n]; + $v = {}; + for $d (@{$patch->{deps}}) { + simplify($d, $v); + } + $ndeps = []; + for $d (@{$patch->{deps}}) { + if(!$v->{$d->{num}}) { push(@$ndeps, $d); } + } + $patch->{deps} = $ndeps; +} + +# Spit out the dot file +print "digraph deps {\n"; +print "\trankdir=LR;\n"; +print "\tnode [ shape=box ];\n"; +for $p (1..$#$patches) { + ($t = $patches->[$p]{title}) =~ s/("|\\)/\\$1/g; + print "\tp$p [ label = \"$t\" ];\n"; + for $d (@{$patches->[$p]{deps}}) { + print "\tp$d->{num} -> p$p;\n"; + } +} +print "}\n"; + +sub simplify { + my ($p, $v) = @_; + for $d (@{$p->{deps}}) { + $v->{$d->{num}} = 1; + simplify($d, $v); + } +} + +sub rewind_to { + while($patch->{num} != $_[0]) { + # Hack to make Darcs re-ask about every patch + print OUT "kwk"; + parse_patch(); + parse_patch(); + parse_patch(); + } +} + +sub parse_patch { + $patch = {}; + chomp($_ = <IN>); + defined($_) or die; + while(/^$|ynWvxqadjk|Pulling from/i) { chomp($_ = <IN>); } + /(.*) (.*)/ or die $_; + $patch->{date} = $1; + $patch->{author} = $2; + chomp($_ = <IN>); + /^ (\*|UNDO:|tagged) (.*)/ or die $_; + $patch->{type} = $1; + $patch->{title} = ($1 eq "UNDO:" || $1 eq "tagged") ? $1 . " " .$2 : $2; + $patch->{desc} = ""; + $patch->{deps} = []; + my $l = ""; + while(defined($c = getc IN)) { + $l .= $c; + if($l =~ /^Shall I pull this patch\? \(([0-9]*)\/([0-9]*)\)/) { + $patch->{num} = $1; + $patch->{total} = $2; + return; + } + if($c eq "\n") { + $l =~ s/^ //; + $patch->{desc} .= $l; + $l = ""; + } + } + die $patch->{title}; +} } [Update syntax for darcs 1.0.3 Toni Timonen <[EMAIL PROTECTED]>**20051207131527] { hunk ./darcs-deps 154 - while(/^$|ynWvxqadjk|Pulling from/i) { chomp($_ = <IN>); } + while(/^$|ynWvpxqadjk|Pulling from/i) { chomp($_ = <IN>); } } [Added copyright information Toni Timonen <[EMAIL PROTECTED]>**20051207131624] { hunk ./darcs-deps 21 -# Comments to james,webb#sygneca,com. +# Comments to ttimonen#movial.fi +# james,webb#sygneca,com. +# hunk ./darcs-deps 27 +# Copyright (c) 2005 Movial Corporation } [Do transitivity relation analysis in O(E) time. Toni Timonen <[EMAIL PROTECTED]>**20051207131657] { hunk ./darcs-deps 110 + print STDERR "\rPatch $n "; hunk ./darcs-deps 138 - for $d (@{$p->{deps}}) { - $v->{$d->{num}} = 1; - simplify($d, $v); + if(!$p->{fulld}) { + my $fd = {}; + for $d (@{$p->{deps}}) { + $fd->{$d->{num}} = 1; + simplify($d, $fd); + } + $p->{fulld}=$fd; + } + for $d (keys %{$p->{fulld}}) { + $v->{$d} = 1; } [remove deps.pl -- about to import Toni Timonen's version instead [EMAIL PROTECTED] { hunk ./tools/deps.pl 1 -#!/usr/bin/perl -w -# -# Darcs patch dependency grapher v0.1. Usage: -# -# cd myrepo -# deps.pl [subset] | dot -Tps -o deps.eps -# gv deps.eps -# -# Where the optional 'subset' argument is the path to a repository -# which is a subset of the current one, in which case only the extra -# patches will be graphed. Both repositories must be local and not -# partial. -# -# Hint: Try using dot -Gsize=50,50 for large graphs, otherwise -# Ghostscript may fall over. -# -# WARNING: Darcs commands will be run against both repositories. They -# should be restored to their original condition afterwards, but -# things might break. -# -# Comments to james,webb#sygneca,com. -# -# ------------------------------------------------------------------------ -# Copyright (c) 2005 Sygneca Ltd. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License (GPL) -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# The full license text is at http://www.gnu.org/copyleft/gpl.html -# ------------------------------------------------------------------------ - -use FileHandle; -use IPC::Open2; -use Cwd; - -$pwd = getcwd(); - -# Create sentinel patch to avoid leaving darcs -system("touch DEPS_TEMPORARY_FILE"); -system("darcs add DEPS_TEMPORARY_FILE > /dev/null"); -system("darcs record -a --no-test -m DEPS_TEMPORARY_PATCH DEPS_TEMPORARY_FILE > /dev/null"); - -# Use a blank repo if none is supplied -if($ARGV[0]) { - chdir($ARGV[0]); -} else { - mkdir("/tmp/darcsdeps$$"); - chdir("/tmp/darcsdeps$$"); - system("darcs init"); -} - -# Start talking -open2(*IN, *OUT, "darcs pull '$pwd'"); - -$patches = []; - -# Get patch descriptions -parse_patch(); -$total = $patch->{total}-1; -while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { - $patches->[$patch->{num}] = $patch; - print OUT "w"; - parse_patch(); -} - -rewind_to(1); - -# Find dependencies by saying 'no' to each patch in turn and -# seeing which ones disappear. -while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { - print STDERR "\rExamining patch $patch->{num} of $total."; - $seen = []; - $dep = $patches->[$patch->{num}]; - print OUT "n"; - parse_patch(); - while($patch->{title} ne "DEPS_TEMPORARY_PATCH") { - $seen->[$patch->{num}] = 1; - print OUT "w"; - parse_patch(); - } - for $i ($dep->{num}+1 .. $total) { - if(!$seen->[$i]) { - push(@{$patches->[$i]{deps}}, $dep); - } - } - rewind_to($dep->{num}); - print OUT "y"; - parse_patch(); -} - -# Clean up -print OUT "q"; -chdir($pwd); -system("rm -rf /tmp/darcsdeps$$"); -system("echo -n y | darcs unpull -p DEPS_TEMPORARY_PATCH > /dev/null"); -print STDERR "\rDone. \n"; - -# Simplify transitive deps -for $n (1..$#{$patches}) { - $patch = $patches->[$n]; - $v = {}; - for $d (@{$patch->{deps}}) { - simplify($d, $v); - } - $ndeps = []; - for $d (@{$patch->{deps}}) { - if(!$v->{$d->{num}}) { push(@$ndeps, $d); } - } - $patch->{deps} = $ndeps; -} - -# Spit out the dot file -print "digraph deps {\n"; -print "\trankdir=LR;\n"; -print "\tnode [ shape=box ];\n"; -for $p (1..$#$patches) { - ($t = $patches->[$p]{title}) =~ s/("|\\)/\\$1/g; - print "\tp$p [ label = \"$t\" ];\n"; - for $d (@{$patches->[$p]{deps}}) { - print "\tp$d->{num} -> p$p;\n"; - } -} -print "}\n"; - -sub simplify { - my ($p, $v) = @_; - for $d (@{$p->{deps}}) { - $v->{$d->{num}} = 1; - simplify($d, $v); - } -} - -sub rewind_to { - while($patch->{num} != $_[0]) { - # Hack to make Darcs re-ask about every patch - print OUT "kwk"; - parse_patch(); - parse_patch(); - parse_patch(); - } -} - -sub parse_patch { - $patch = {}; - chomp($_ = <IN>); - defined($_) or die; - while(/^$|ynWvxqadjk|Pulling from/i) { chomp($_ = <IN>); } - /(.*) (.*)/ or die $_; - $patch->{date} = $1; - $patch->{author} = $2; - chomp($_ = <IN>); - /^ (\*|UNDO:|tagged) (.*)/ or die $_; - $patch->{type} = $1; - $patch->{title} = ($1 eq "UNDO:" || $1 eq "tagged") ? $1 . " " .$2 : $2; - $patch->{desc} = ""; - $patch->{deps} = []; - my $l = ""; - while(defined($c = getc IN)) { - $l .= $c; - if($l =~ /^Shall I pull this patch\? \(([0-9]*)\/([0-9]*)\)/) { - $patch->{num} = $1; - $patch->{total} = $2; - return; - } - if($c eq "\n") { - $l =~ s/^ //; - $patch->{desc} .= $l; - $l = ""; - } - } - die $patch->{title}; -} rmfile ./tools/deps.pl } [move darcs-deps to tools/deps.pl [EMAIL PROTECTED] { move ./darcs-deps ./tools/deps.pl } Context: [call unnamed patches "changes" in interactive patch selection dialogue Tommy Pettersson <[EMAIL PROTECTED]>**20060113203829 It currently affects record, revert and amend, but will generally do "the right thing". ] [fix win32 build breaks Will <[EMAIL PROTECTED]>**20060112054853] [fix content-type in rss output of cgi Will <[EMAIL PROTECTED]>**20060110052938] [resolve conflict Tommy Pettersson <[EMAIL PROTECTED]>**20060108173148] [Obey normal autoconf conventions. Dave Love <[EMAIL PROTECTED]>**20051117190231 Allows you to `make install prefix=...', for instance, and doesn't change default for sysconfdir. ] [add link to darcs-unstable repo on darcs home page Tommy Pettersson <[EMAIL PROTECTED]>**20060107212721] [Don't say "yes" in an infinite loop. Bill Trost <[EMAIL PROTECTED]>**20060108162605 I ended up with this test hanging forever because the while loop wasn't getting a SIGPIPE because of the way my editor environment (no controlling tty?) was set up. We have a pretty good idea of how many "y"s are needed anyhow. ] [fix crash caused by tests failing on amend-record Zachary P. Landau <[EMAIL PROTECTED]>**20060108174722] [More canonization Eric Kow <[EMAIL PROTECTED]>**20060108235935 canonized : Mark Stosberg, Erik Schnetter, Joeri van Ruth identified: Richard Smith, Victor Hugo Borja Rodriguez ] [Improved single-character prompt (RT #261) Eric Kow <[EMAIL PROTECTED]>**20060108225741 In the dialogue prompting for a single character as a response, if the user just presses enter, we behave is if we got an invalid response. This way, the user gets a little bit of feedback that he should respond differently. Also: refactors the case where there is a default answer and where the user may press '?' for help. ] [Corrections to bugfix for (RT #466) Eric Kow <[EMAIL PROTECTED]>**20060108225411 The bug fix for case insensitive filesystems was incorrect because 1. canonicalizePath does not canonicalise the same filename with different cases into the same entry 2. RT #466 affects case sensitive and case insensitive file systems alike (i.e. the bug description was wrong) 3. canonicalizePath is not available in ghc 6.2.2 This correction also has the advantage of being much simpler and closer to what David Roundy suggested on the bug tracker. We remove the old file from the slurpy so that it doesn't get mistaken for the new file. ] [use _darcs/pristine in regression tests Eric Kow <[EMAIL PROTECTED]>**20060108222000] [Make the "record --pipe" docs match the program behavior. Bill Trost <[EMAIL PROTECTED]>**20060107050910] [Make --exact-version also work if darcs is built from "make dist" tar ball Marnix Klooster <[EMAIL PROTECTED]>**20060106205857 This is to prevent "darcs --exact-version" outputting something like darcs compiled on Mar 2 2005, at 10:56:16 unknown as it does when building from the output of "make dist", e.g., from the official tarballs at darcs.net. (This is what a lot of people and distros do. Gentoo does this, and I'm using Gentoo, and I want to be able to do "darcs --exact-version" and have it output something sensible.) The reason that this problem occurs is that while doing 'make predist' (in the 'predist' preference), Context.hs was nicely preserved by predist_copy, but then thrown away by distclean which calls clean. So the resulting tarball has no Context.hs, which results in the "unknown" exact version. The solution consists of the following: * Only remove Context.hs in "clean" if it can be rebuilt using its rule in automake.mk (i.e., if _darcs/inventory exists, so if we are in a repository). * Target realclean is renamed to the newer maintainer-clean and extended a little, according to the GNU make manual (not strictly necessary). As a result of this, we now follow GNU makefile conventions more closely. See the rules in the "Standard Targets for Users" section of the GNU make manual (currently at http://www.gnu.org/software/make/manual/html_node/make_127.html), and an interpretation of these rules in the "What Gets Cleaned" section of the GNU automake manual (currently at http://www.gnu.org/software/automake/manual/html_node/Clean.html). Thanks to Taral <[EMAIL PROTECTED]> for the above info. ] [Coalesce setpref (issue70 and RT #349) Eric Kow <[EMAIL PROTECTED]>**20051230230842] [only create log file when a long comment was requested Zachary P. Landau <[EMAIL PROTECTED]>**20060108181034] [Use temporary file when editing send description. Zachary P. Landau <[EMAIL PROTECTED]>**20051217212051] [Extended date matching functionality. Eric Kow <[EMAIL PROTECTED]>**20051228210942 (issue31 and RT #34) Now accepts ISO 8601 intervals (mostly) as well as a larger subset of English (including times like "yesterday at noon"). Note: also includes corrections to ISO 8601 date/time parsing, using a more elegant technique of building dates up. ] [Partial implementation of iso 8601 dates Eric Kow <[EMAIL PROTECTED]>**20051228123040 (issue31) - first step reluctant to implement (ambiguous!): * years > 9999 * truncated representations with implied century (89 for 1989) unimplemented: * time intervals -- this might be good to have in darcs * negative dates (BC) ] [Allow rename to different case (RT #466, case-insensitive file systems) Eric Kow <[EMAIL PROTECTED]>**20060106000141 Creates an exception in the check that the new name does not already exists; it's ok if both names reduce to the same canonical path ] [Update "darcs init" documentation to match its behavior. Bill Trost <[EMAIL PROTECTED]>**20060105040737] [Invert 'file exists already' error message in mv Eric Kow <[EMAIL PROTECTED]>**20051230220431 mv used the wrong error message for --case-ok and opposite ] [bug fixes for darcs help Eric Kow <[EMAIL PROTECTED]>**20051230011003] [Canonize myself and almost all other contributers. Eric Kow <[EMAIL PROTECTED]>**20051229140428 Add function to append name to email address Merged: Marnix Klooster, Eric Kow, Andres Loeh, Esa Ilari Vuokko Looked up name on Google for most orphaned email addresses. Hope nobody actually objects to this. ] [add a --without-docs option to configure [EMAIL PROTECTED] [only print 'making executable' in verbose mode Eric Kow <[EMAIL PROTECTED]>**20051226182817] [fix for Issue14 remove darcs-createrepo Jason Dagit <[EMAIL PROTECTED]>**20051224002230] [Support --interactive option in changes command (issue #59). Zachary P. Landau <[EMAIL PROTECTED]>**20051221052049] [Fix type incompatibility between C code and Haskell foreign declaration. Juliusz Chroboczek <[EMAIL PROTECTED]>**20060106154108] [Move patchSetToPatches to Repository.lhs Zachary P. Landau <[EMAIL PROTECTED]>**20051219043719] [Use _darcs/pristine instead of _darcs/current. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051215180814 All versions of Darcs since 1.0.2rc1 are able to handle either name. This will break compatibility of new repositories with older versions. ] [fix pathname in comment in darcs.cgi.in [EMAIL PROTECTED] [Do not document "darcs query manifest" twice. Erik Schnetter <[EMAIL PROTECTED]>**20051222125103] [Rename git.c to gitlib.c Erik Schnetter <[EMAIL PROTECTED]>**20051222115318 On case-insensitive file systems, the source files Git.lhs and git.c lead to the same object file git.o. Renaming git.c to gitlib.c solves this problem. ] [Remove periods from the AC_MSG_CHECKING call for the release state. Matt Kraai <[EMAIL PROTECTED]>**20051220174536] [Implementation of help command Eric Kow <[EMAIL PROTECTED]>**20051218172558 (RT #307) Provides a command to display usage information on the screen. darcs help = darcs --help darcs help --verbose = darcs --extended-help darcs help command = darcs command --help This implementation understands abbreviated commands and subcommands. Slightly refactors darcs.lhs. ] [reorganize comments (and add a comment) in Depends.lhs. David Roundy <[EMAIL PROTECTED]>**20051218122029] [fix bug in doesDirectoryReallyExist. David Roundy <[EMAIL PROTECTED]>**20051020121710 We were failing with an exception if there was no such object. The error message was: Fail: getSymbolicLinkStatus: does not exist ] [fix type of foreign calls in FastPackedString. David Roundy <[EMAIL PROTECTED]>**20050920125800] [rename RepoTypes to PatchSet. David Roundy <[EMAIL PROTECTED]>**20050917133920] [remove PatchSequence, which has long been obsolete. David Roundy <[EMAIL PROTECTED]>**20050917133313 The patch removes remaining vestiges of PatchSequence, which was obsoleted long ago by PatchSet (which stores patches in the opposite order (better for lazy use) and which has additional information about tags that allows us to avoid looking at old history. ] [correction for send.sh test Eric Kow <[EMAIL PROTECTED]>**20051218095652 previously failed on (at least) MacOS X 10.3.9 ] [RemoteApply no longer depends on cd, use --repodir instead. [EMAIL PROTECTED] This is a minor change to make darcs no longer use cd before applying patches to a remote repository. Now the --repodir option for the apply command is used. This patch came from a hack to rssh[http://sf.net/projects/rssh] to allow using darcs as a restricted command without depending on the cd binary. http://sf.net/tracker/index.php?func=detail&aid=1351939&group_id=65349&atid=510643 ] [Support signed push Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051129082159] [Fix typo in multirepo pull. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051217201918] [Fix merge conflicts. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051217201903] [add changelog entry for multirepo pull. David Roundy <[EMAIL PROTECTED]>**20051215122808] [add support for pulling from multiple repositories simultaneously. David Roundy <[EMAIL PROTECTED]>**20050919125012] [Use POSIX-style option for 'head', instead of obsolescent syntax Marnix Klooster <[EMAIL PROTECTED]>**20051216111731] [Clarify wording for changes that can't be unreverted [EMAIL PROTECTED] [Set attachment filename when sending a patch bundle by e-mail. Zachary P. Landau <[EMAIL PROTECTED]>**20051217195009] [save long comment file if a test fails during record Zachary P. Landau <[EMAIL PROTECTED]>**20051216023948] [modernize amend-record.pl to be more portable. Mark Stosberg <[EMAIL PROTECTED]>**20050402133417 This depends on the new "echo_to_darcs()" function in Test::Darcs ] [implementation of --set-scripts-executable on local darcs get [EMAIL PROTECTED] proposed fix for issue38 The --set-scripts-executable flag is normally evaluated when you apply patches. But when you do a local darcs get, no patches are applied. So as a solution, we traverse the directory on local darcs get , and set any script files to be executable. Note: one flaw in this patch is that it duplicates the definition of what a script is -- a file that starts with #! -- in PatchApply.lhs and Get.lhs. It might be good to refactor these somehow. ] [extended set-scripts-executable test [EMAIL PROTECTED] added check for local darcs get (issue 38) as well as initial sanity check ] [Fix merge conflicts. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051214223217] [Add --subject flag to 'darcs send' Joeri van Ruth <[EMAIL PROTECTED]>**20051205120301] [print out the patch name when a test fails. Zachary P. Landau <[EMAIL PROTECTED]>**20051205055109] [Fix mistyped /dev/null, fixes --sendmail-command in Windows Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051129160120] [Use \ as path separator for GnuPG in Windows -- makes apply --verify work Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051129164533] [make dangers and recommended use of "Amend" clearer in the docs. Mark Stosberg <[EMAIL PROTECTED]>**20051213140523 I think it's important to be clearer about when it's appropriate to use 'amend', so I moved some notes into the short and mid-length help texts. ] [update web page to reflect 1.0.5 as latest stable source. Tommy Pettersson <[EMAIL PROTECTED]>**20051213111137] [fix handling of absolute paths containing drive letters Will <[EMAIL PROTECTED]>**20051208054737 This fixes issue 47 where paths containing drive letters (i.e. on windows) are not treated as absolute paths. ] [bump version to 1.0.6pre1 Tommy Pettersson <[EMAIL PROTECTED]>**20051208092839] [revert maybe_relink and atomic_create to original C code. David Roundy <[EMAIL PROTECTED]>**20051208131213] [resolve conflicts between stable and unstable. David Roundy <[EMAIL PROTECTED]>**20051206134818] [Merge changes Ian Lynagh <[EMAIL PROTECTED]>**20051008225210] [fix mkstemp implementation for win32 Peter Strand <[EMAIL PROTECTED]>**20050810211303] [Implement parts of System.Posix.(IO|Files) for win32 [EMAIL PROTECTED] [implement RawMode with library functions instead of ffi [EMAIL PROTECTED] [call hsc2hs without output filename argument [EMAIL PROTECTED] [Rename compat.c to c_compat.c to avoid object filename conflict with Compat.hs [EMAIL PROTECTED] [Move atomic_create/sloppy_atomic_create to Compat Ian Lynagh <[EMAIL PROTECTED]>**20050730141703] [Split the raw mode stuff out into its own .hsc file. Windows needs some TLC Ian Lynagh <[EMAIL PROTECTED]>**20050730134030] [Move maybe_relink out of compat.c Ian Lynagh <[EMAIL PROTECTED]>**20050730131205] [Remove is_symlink Ian Lynagh <[EMAIL PROTECTED]>**20050730122255] [Move mkstemp to Compat.hs Ian Lynagh <[EMAIL PROTECTED]>**20050730020918] [Start Compat.hs, and move stdout_is_a_pipe from compat.c Ian Lynagh <[EMAIL PROTECTED]>**20050730004829] [TAG 1.0.5 Tommy Pettersson <[EMAIL PROTECTED]>**20051207112730] [add changelog entry Tommy Pettersson <[EMAIL PROTECTED]>**20051207112704] [bump version to 1.0.5 Tommy Pettersson <[EMAIL PROTECTED]>**20051204161803] [TAG 1.0.5rc2 Tommy Pettersson <[EMAIL PROTECTED]>**20051204152416] [add changelog entries Tommy Pettersson <[EMAIL PROTECTED]>**20051204151312] [bump version to 1.0.5rc2 Tommy Pettersson <[EMAIL PROTECTED]>**20051204150926] [skip tests that fail because of windows or msys Will <[EMAIL PROTECTED]>**20051204035855] [use autoconf to determine which GHC modules to use Will <[EMAIL PROTECTED]>**20051204022613 GNUmakefile had the util and text packages hard coded, but the util package appears to be missing from the current ghc-6-4-branch. Instead of hard coding packages, use autoconf to include them when necessary. ] [use System.Posix.sleep and fix the win32 implementation Will <[EMAIL PROTECTED]>**20051204002859 Make Lock.lhs use the sleep function from System.Posix rather than importing the C implementation. Also fix the the win32 implementation to call SleepEx rather than sleep from unistd.h which has been deprecated in recent versions of mingw. ] [Make --help and --list-commands ignore other options [EMAIL PROTECTED] Proposed implementation of issue34 on the wishlist. If --help is one of the options you provide, then darcs prints the help and does nothing else, no matter what order you put the options in. Similar behaviour for --list-commands. ] [Make send --ouput - to print to stdout Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051129201708] [Support apply --verify for bundles signed by GnuPG in Windows Esa Ilari Vuokko <[EMAIL PROTECTED]>**20051126223238] [TAG 1.0.5rc1 Tommy Pettersson <[EMAIL PROTECTED]>**20051125191739] [add some changelog entries Tommy Pettersson <[EMAIL PROTECTED]>**20051125191633] [remove tabs from darcs source file Tommy Pettersson <[EMAIL PROTECTED]>**20051120200002] [Added a test for changes --context patch selection. Daniel Bünzli <[EMAIL PROTECTED]>**20051120170157] [Emacs ediff-merge example and explanation of --external-merge. Dave Love <[EMAIL PROTECTED]>**20051117154924] [Fix patch selection for command changes --context Daniel Bünzli <[EMAIL PROTECTED]>**20051117145112] [fix bug in amInRepository. David Roundy <[EMAIL PROTECTED]>**20051117131208 This is the bug that causes issue9. I'm a bit uncertain about this patch--it looks obvious, but this is pretty subtle code. ] [fix bug where darcs tries to delete open tempfile on win32 Will <[EMAIL PROTECTED]>**20051117023516] [bump version to 1.0.5rc1 Tommy Pettersson <[EMAIL PROTECTED]>**20051117111128] [Fixed documentation of DARCS_GET_HTTP with curl. Daniel Bünzli <[EMAIL PROTECTED]>**20051117062547] [add --dont-edit-description opposite to --edit-description. David Roundy <[EMAIL PROTECTED]>**20051116115632] [Flag superfluous input using Test::Builder Florian Weimer <[EMAIL PROTECTED]>**20051112160533 This change makes sure that the test case that triggers this error condition fails in a clean way (especially if test planning is not used, but it should work with plans as well). ] [English and markup fixes. Dave Love <[EMAIL PROTECTED]>**20051114224845] [update web page to reflect 1.0.4 as latest stable source. David Roundy <[EMAIL PROTECTED]>**20051113210144] [TAG 1.0.4 David Roundy <[EMAIL PROTECTED]>**20051113134431] [bump version number to 1.0.4. David Roundy <[EMAIL PROTECTED]>**20051112170053] [fix, move default markings of Query Manifest flags right Tommy Pettersson <[EMAIL PROTECTED]>**20051112185325 Files are included and dirs are not, by default. ] [make determine_release_state.pl work properly for actual releases. David Roundy <[EMAIL PROTECTED]>**20051112171734] [add note in docs about bug with DARCS_DONT_ESCAPE_ISPRINT with GHC 6.4 Tommy Pettersson <[EMAIL PROTECTED]>**20051112153628] [set DARCS_EDITOR in send.sh so darcs won't actually call a real editor. David Roundy <[EMAIL PROTECTED]>**20051112145118] [Add BUGS section. Dave Love <[EMAIL PROTECTED]>**20051112135212 The info should also be added to the manual somewhere appropriate. ] [Add bug address to help text. Dave Love <[EMAIL PROTECTED]>**20051112105924] [fix bug in darcs_completion when you match the "." character. David Roundy <[EMAIL PROTECTED]>**20051112140357] [add a few more changelog entries. David Roundy <[EMAIL PROTECTED]>**20051111133638] [fix bug in code for external conflict resolution. David Roundy <[EMAIL PROTECTED]>**20051111132557] [spelling fix in docs. David Roundy <[EMAIL PROTECTED]>**20051111123035] [use substrPS for more robust searching for the patch bundle hash. David Roundy <[EMAIL PROTECTED]>**20051110145918] [speed up replace by first checking on each line if there might be a match. David Roundy <[EMAIL PROTECTED]>**20051110143047 The idea is that if there is no substring match, there won't be a token match, and we can save huge amounts of time. On my very simple test (replacing if with fi in all of darcs' files), the speedup took us from 30 seconds to 3 seconds to pull. ] [implement FastPackedString.substrPS, which searches for a substring. David Roundy <[EMAIL PROTECTED]>**20051110140311] [make pull.pl work on MacOS X using ugly hack. [EMAIL PROTECTED] For some reason ghc on MacOX X gives an Unknown error 0 where it ought to give a "permission denied" error. This change just makes us recognize this and turns the test failure into a TODO check. ] [add a couple of changelog entries. David Roundy <[EMAIL PROTECTED]>**20051108132617] [make sftp honor the SSH_PORT env variable. David Roundy <[EMAIL PROTECTED]>**20051108131847] [Fix spurious failure of the revert test case Florian Weimer <[EMAIL PROTECTED]>**20051107195237 "darcs revert -a" does not require confirmation. ] [Check for excess input in test cases Florian Weimer <[EMAIL PROTECTED]>**20051107195045 This change also fixes a latent race condition (by adding a call to waitpid): darcs might not have run to completion when echo_to_darcs returns. ] [During tests, do not exit silently when a write fails Florian Weimer <[EMAIL PROTECTED]>**20051107194913] [Avoid putting a wrongly-named directory in dist tarball if the name we wanted already exists in $TMPDIR Simon McVittie <http://www.pseudorandom.co.uk/>**20051106145821] [fix example in doc to work with version 1.0.3 and above Tommy Pettersson <[EMAIL PROTECTED]>**20051106232940 Discovered and fix suggested by Pavel Pisa. ] [update version number to 1.0.4rc3. David Roundy <[EMAIL PROTECTED]>**20051108120613] [TAG 1.0.4rc2 David Roundy <[EMAIL PROTECTED]>**20051106121631] [rewrite hunk application code to reinstate consistency checking. David Roundy <[EMAIL PROTECTED]>**20051105190307 In the optimization, Ian dropped checking that the "old" state of the file matches what the patch thinks. This works fine until a repository becomes corrupt, at which point it makes the corruption harder to pinpoint (and makes it able to sneak by longer without being seen). ] [mark as TODO a merge bug that was uncovered by another bugfix. David Roundy <[EMAIL PROTECTED]>**20051105184800 This doesn't look like a pleasant bug, but the fix is a real fix, which I want to get into the stable release. ] [add test for newlineless patches. David Roundy <[EMAIL PROTECTED]>**20051105171242] [fix bug in record --ask-deps David Roundy <[EMAIL PROTECTED]>**20051103014858 This fixes the "pull_firsts_middles called badly" bug. It's a bit of an ugly hack to work around the Ian's ugly hack that makes: $ echo a | darcs record -m foo as memory-efficient (and time-efficient, too) as $ darcs record --all -m foo I do have some ideas how we might be able to avoid some of this ugliness... ] [add changelog entry for RT#476 bugfix. David Roundy <[EMAIL PROTECTED]>**20051102145144] [Implement caching of git sequences in GitRepo. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051031132139] [Reorganized command overview in manual. [EMAIL PROTECTED] [Remove obsolete comment. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051027183940] [Use gitCommitDatePS instead of gitCommitDate when choosing Git ancestors. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051027182421] [Use PackedStrings when parsing Git authors. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051027182400] [Use the new breakFirstPairPS instead of break2PS. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051027180138] [Change breakFirstPairPS to return slightly larger strings. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051027180107] [properly quote paths so that paths with spaces in them are okay [EMAIL PROTECTED] [fix up debug printouts in cygwin-wrapper.bash [EMAIL PROTECTED] [smoother invocation of cygwin-wrapper.bash -- it detects fully-qualified path to itself by leading / [EMAIL PROTECTED] [Use packed strings when parsing Git commits. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051026005323] [Implement break2PS. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051026005236] [Choose better ancestors for Git merges. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051025215522 The common ancestor will be chosen optimally assuming that the Git ancestry graph is a semilattice and commit dates are monotonic. If the Git ancestry graph is unstructured, the youngest ancestor will be chosen. If Git dates are not ordered, all bets are off. The algorithm is at least O(h*w^2), where h is the height of the ancestry graph and w is the number of ancestors, but profiling shows that this doesn't matter much -- commuting patches is what takes all the time. ] [Implement gitCommitDate. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051025213832] [Clarify docs for building darcs-git. Juliusz Chroboczek <[EMAIL PROTECTED]>**20051025231344] [give better error messages when cloning trees David Roundy <[EMAIL PROTECTED]>**20051020124139 Also make cloneSubTree ignore nonexistent objects. I belive this solves the issue with bug #562. ] [fix html package inclusion in user manual Andres Loeh <[EMAIL PROTECTED]>**20051013200817] [improve command-line help for put. David Roundy <[EMAIL PROTECTED]>**20051014115911] [add warning to docs about inefficiency of put. David Roundy <[EMAIL PROTECTED]>**20051013124058] [add the new put command to list in doc Tommy Pettersson <[EMAIL PROTECTED]>**20051013103518] [update documentation on matching ranges Tommy Pettersson <[EMAIL PROTECTED]>**20051012163804 The matching patch at either end of a range is included in the output. ] [document DARCS_DONT_ESCAPE_TRAILING_CR Tommy Pettersson <[EMAIL PROTECTED]>**20051012140458] [fix typo Tommy Pettersson <[EMAIL PROTECTED]>**20051010190733] [avoid duplicated code for constructing patch bundles in Push. David Roundy <[EMAIL PROTECTED]>**20051011123752] [remove *.ko files from the default boring regexps. David Roundy <[EMAIL PROTECTED]>**20051011131624 They could be Korean translations rather than kernel modules. ] [add changelog entry for #544. David Roundy <[EMAIL PROTECTED]>**20051009115143] [fix bug #544, caused by outputing changes --context with escaping and coloring. David Roundy <[EMAIL PROTECTED]>**20051009114941] [add test for bug #544 David Roundy <[EMAIL PROTECTED]>**20051009114914] [bump version to 1.0.4rc2 Tommy Pettersson <[EMAIL PROTECTED]>**20051010164926] [TAG 1.0.4rc1 Tommy Pettersson <[EMAIL PROTECTED]>**20051008101653] Patch bundle hash: 5e534f7ddb3e1c9150ce07935fb991f356f3ea05 _______________________________________________ darcs-devel mailing list darcs-devel@darcs.net http://www.abridgegame.org/cgi-bin/mailman/listinfo/darcs-devel