diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-07-25 20:13:45 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-07-25 20:13:45 +0200 |
commit | 3575798564744d57f3ef9c21fa4edd0f847fd013 (patch) | |
tree | edc636b5cf0a06f7b0952911b907802ea73d9333 /IkiWiki/Rcs | |
parent | 435a8e1ce5cfde3f26175b3ce69927eb714725a5 (diff) |
bzr: Version directories on the fly, ignore directories when retrieving
changes.
Now passes t/bazaar.t again.
Diffstat (limited to 'IkiWiki/Rcs')
-rw-r--r-- | IkiWiki/Rcs/bzr.pm | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/IkiWiki/Rcs/bzr.pm b/IkiWiki/Rcs/bzr.pm index 30d37a647..c80356159 100644 --- a/IkiWiki/Rcs/bzr.pm +++ b/IkiWiki/Rcs/bzr.pm @@ -25,7 +25,7 @@ sub bzr_log ($) { #{{{ unless (defined($infos[$#infos]{$key})) { $infos[$#infos]{$key} = ""; } } elsif (defined($key) and $line =~ /^ (.*)/) { - $infos[$#infos]{$key} .= $1; + $infos[$#infos]{$key} .= "$1\n"; } elsif ($line eq "------------------------------------------------------------\n") { $key = undef; @@ -128,6 +128,11 @@ sub rcs_remove ($) { # {{{ sub rcs_rename ($$) { # {{{ my ($src, $dest) = @_; + my $parent = dirname($dest); + if (system("bzr", "add", "--quiet", "$config{srcdir}/$parent") != 0) { + warn("bzr add $parent failed\n"); + } + my @cmdline = ("bzr", "mv", "--quiet", "$config{srcdir}/$src", "$config{srcdir}/$dest"); if (system(@cmdline) != 0) { warn "'@cmdline' failed: $!"; @@ -154,7 +159,14 @@ sub rcs_recentchanges ($) { #{{{ } foreach my $file (split(/\n/, $info->{files})) { - my ($filename, $fileid) = split(/[ \t]+/, $file); + my ($filename, $fileid) = ($file =~ /^(.*?) +([^ ]+)$/); + + # Skip directories + next if ($filename =~ /\/$/); + + # Skip source name in renames + $filename =~ s/^.* => //; + my $diffurl = $config{'diffurl'}; $diffurl =~ s/\[\[file\]\]/$filename/go; $diffurl =~ s/\[\[file-id\]\]/$fileid/go; |