All rcs backends need to implement rcs_remove
authorJoey Hess <joey@kodama.kitenet.net>
Mon, 21 Jul 2008 17:40:06 +0000 (13:40 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Mon, 21 Jul 2008 17:41:17 +0000 (13:41 -0400)
(Done for svn, git.)

IkiWiki/Rcs/Stub.pm
IkiWiki/Rcs/bzr.pm
IkiWiki/Rcs/git.pm
IkiWiki/Rcs/mercurial.pm
IkiWiki/Rcs/monotone.pm
IkiWiki/Rcs/svn.pm
IkiWiki/Rcs/tla.pm
debian/changelog
doc/todo/Moving_Pages.mdwn

index 6b69e65dcdbc2e92ff5e8e725830f4626c6c6a4d..375591c96ce6883a7e4eeadf3862fce768191580 100644 (file)
@@ -33,6 +33,12 @@ sub rcs_add ($) {
        # prepare for it to be checked in when rcs_commit is called.
 }
 
+sub rcs_remove ($) {
+       # Remove a file. The filename is relative to the root of the srcdir.
+       # Note that this should not check the removal in, it should only
+       # prepare for it to be checked in when rcs_commit is called.
+}
+
 sub rcs_recentchanges ($) {
        # Examine the RCS history and generate a list of recent changes.
        # The data structure returned for each change is:
index 0dc456de2c1fc652b48491f1584e17e0341f5b59..ca60190eaa836f85801b4ef3364d21d8f0e315c5 100644 (file)
@@ -89,6 +89,12 @@ sub rcs_add ($) { # {{{
        }
 } #}}}
 
+sub rcs_remove ($) { # {{{
+       my ($file) = @_;
+
+       error("rcs_remove not implemented for bzr"); # TODO
+} #}}}
+
 sub rcs_recentchanges ($) { #{{{
        my ($num) = @_;
 
index 7fb612a39bdc56c4b7931a48ab9f8a8db76d55ac..b02b286bdc9dc3027fa0daf65b294ece518912e5 100644 (file)
@@ -348,6 +348,14 @@ sub rcs_add ($) { # {{{
        run_or_cry('git', 'add', $file);
 } #}}}
 
+sub rcs_remove ($) { # {{{
+       # Remove file from archive.
+
+       my ($file) = @_;
+
+       run_or_cry('git', 'rm', '-f', $file);
+} #}}}
+
 sub rcs_recentchanges ($) { #{{{
        # List of recent changes.
 
index bfe6ba49c13edc088b270faee364d94a2dbd7903..1bfcf624224c9532215247977795d4338745b5de 100644 (file)
@@ -101,6 +101,12 @@ sub rcs_add ($) { # {{{
        }
 } #}}}
 
+sub rcs_remove ($) { # {{{
+       my ($file) = @_;
+
+       error("rcs_remove not implemented for mercurial"); # TODO
+} #}}}
+
 sub rcs_recentchanges ($) { #{{{
        my ($num) = @_;
 
index ce4a2a3ed4d3b10d89b436818b29145b7cd743ff..948edac0af6e217d704b04f18eb14d1e6868dabb 100644 (file)
@@ -370,6 +370,12 @@ sub rcs_add ($) { #{{{
        }
 } #}}}
 
+sub rcs_remove ($) { # {{{
+       my $file = shift;
+
+       error("rcs_remove not implemented for monotone"); # TODO
+} #}}}
+
 sub rcs_recentchanges ($) { #{{{
        my $num=shift;
        my @ret;
index 6a822e896cd79951d3d0a4fdc1dd3e4a4e9c3b9e..6c15c2ca9b260bda8efd204d0be3d0a4b0f6c8af 100644 (file)
@@ -134,6 +134,23 @@ sub rcs_add ($) { #{{{
        }
 } #}}}
 
+sub rcs_remove ($) { #{{{
+       # filename is relative to the root of the srcdir
+       my $file=shift;
+
+       if (-d "$config{srcdir}/.svn") {
+               my $parent=dirname($file);
+               while (! -d "$config{srcdir}/$parent/.svn") {
+                       $file=$parent;
+                       $parent=dirname($file);
+               }
+               
+               if (system("svn", "rm", "--force", "--quiet", "$config{srcdir}/$file") != 0) {
+                       warn("svn rm failed\n");
+               }
+       }
+} #}}}
+
 sub rcs_recentchanges ($) { #{{{
        my $num=shift;
        my @ret;
index e7fed9ad8ce9c838da52039e6a117b5b4f6c2c73..29dbd092a0ac67c812f76fdce9f31c1883b5cbdb 100644 (file)
@@ -88,6 +88,12 @@ sub rcs_add ($) { #{{{
        }
 } #}}}
 
+sub rcs_remove ($) { # {{{
+       my $file = shift;
+
+       error("rcs_remove not implemented for tla"); # TODO
+} #}}}
+
 sub rcs_recentchanges ($) {
        my $num=shift;
        my @ret;
index 78a7af0012a002d06a35f839548f39f49344762c..1c7d03b9718e03187486e92322030a5ad04955ae 100644 (file)
@@ -3,6 +3,7 @@ ikiwiki (2.55) UNRELEASED; urgency=low
   * prefix_directives enabled in doc wiki, all preprocessor directives
     converted. (Simon McVittie)
   * editpage: Don't show attachments link when attachments are disabled.
+  * All rcs backends need to implement rcs_rm. (Done for svn, git).
 
  -- Joey Hess <joeyh@debian.org>  Mon, 21 Jul 2008 11:35:46 -0400
 
index 7485f06fde9d2a74c75c007f258d7fa7979886b9..8ec61e4f5b99e9aec9c9350a98eaf5b9255e4bb7 100644 (file)
@@ -395,16 +395,10 @@ is checked too.
 
 ## RCS
 
-Two new optional functions are added to the RCS interface:
+Two new functions are added to the RCS interface:
 
-* `rcs_delete(file, message, rcstoken, user, ipaddr)`
-* `rcs_rename(old, new, message, rcstoken, user, ipaddr)`
-
-The page move/rename code will check if these are not available, and error
-out.
-
-Similar to `rcs_commit` both of these take a rcstoken, which is generated
-by an earlier `rcs_prepedit`.
+* `rcs_remove(file)`
+* `rcs_rename(old, new)`
 
 ## conflicts