diff options
-rw-r--r-- | IkiWiki/Plugin/monotone.pm | 13 | ||||
-rw-r--r-- | debian/changelog | 2 | ||||
-rw-r--r-- | doc/bugs/monotone_backend_does_not_support_srcdir_in_subdir.mdwn | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/monotone.pm b/IkiWiki/Plugin/monotone.pm index 95fbcee76..75bf2f458 100644 --- a/IkiWiki/Plugin/monotone.pm +++ b/IkiWiki/Plugin/monotone.pm @@ -252,9 +252,20 @@ sub get_changed_files ($$) { my @ret; my %seen = (); - + + # we need to strip off the relative path to the source dir + # because monotone outputs all file paths absolute according + # to the workspace root + my $rel_src_dir = $config{'srcdir'}; + $rel_src_dir =~ s/^\Q$config{'mtnrootdir'}\E\/?//; + $rel_src_dir .= "/" if length $rel_src_dir; + while ($changes =~ m/\s*(add_file|patch|delete|rename)\s"(.*?)(?<!\\)"\n/sg) { my $file = $2; + # ignore all file changes outside the source dir + next unless $file =~ m/^\Q$rel_src_dir\E/; + $file =~ s/^\Q$rel_src_dir\E//; + # don't add the same file multiple times if (! $seen{$file}) { push @ret, $file; diff --git a/debian/changelog b/debian/changelog index 6d333a843..12cc90b11 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,8 @@ ikiwiki (3.20100927) UNRELEASED; urgency=low * actiontabs: More consistent styling of Hn tags. * websetup: Fix saving of advanced mode changes. * websetup: Fix defaults of checkboxes in advanced mode. + * monotone: Fix recentchanges page when the srcdir is not at the top + of the monotone workspace. Thanks, tommyd. -- Joey Hess <joeyh@debian.org> Wed, 29 Sep 2010 11:58:23 -0400 diff --git a/doc/bugs/monotone_backend_does_not_support_srcdir_in_subdir.mdwn b/doc/bugs/monotone_backend_does_not_support_srcdir_in_subdir.mdwn index 9e1924472..35f624f78 100644 --- a/doc/bugs/monotone_backend_does_not_support_srcdir_in_subdir.mdwn +++ b/doc/bugs/monotone_backend_does_not_support_srcdir_in_subdir.mdwn @@ -1,3 +1,5 @@ The [[rcs/monotone]] backend does not currently support putting the ikiwiki srcdir in a subdirectory of the repository. It must be at the top. Git has special code to handle this case. --[[Joey]] + +[[done]] |