/[suikacvs]/webroot/swe/lib/SWE/DB/VersionControl.pm
Suika

Contents of /webroot/swe/lib/SWE/DB/VersionControl.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Mon Mar 2 07:32:30 2009 UTC (16 years, 1 month ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +2 -0 lines
++ swe/lib/SWE/DB/ChangeLog	2 Mar 2009 07:32:02 -0000
2009-03-01  Wakaba  <wakaba@suika.fam.cx>

	* HashedIndex.pm: New module.

	* IDGenerator.pm (get_last_id): New method.

2009-01-12  Wakaba  <wakaba@suika.fam.cx>

	* SuikaWiki3LastModified.pm (get_data): Why this convertion was
	necessary?

++ swe/lib/suikawiki/ChangeLog	2 Mar 2009 07:31:08 -0000
2009-03-02  Wakaba  <wakaba@suika.fam.cx>

	* main.pl (;search, ;terms): New modes.

++ swe/styles/ChangeLog	3 Feb 2009 03:44:04 -0000
2009-02-03  Wakaba  <wakaba@suika.fam.cx>

	* sw.css: Fixed a typo.

1 wakaba 1.1 package SWE::DB::VersionControl;
2     use strict;
3    
4     sub new ($) {
5     my $self = bless {
6     added_directories => {},
7     added_files => {},
8     modified_files => {},
9     }, shift;
10     return $self;
11     } # new
12    
13     sub add_directory ($$) {
14     my $self = shift;
15     my $directory_name = shift;
16     $self->{added_directories}->{$directory_name} = 1;
17     } # add_directory
18    
19     sub add_file ($$) {
20     my $self = shift;
21     my $file_name = shift;
22     $self->{added_files}->{$file_name} = 1;
23     $self->{modified_files}->{$file_name} = 1;
24     } # add_file
25    
26 wakaba 1.3 ## TODO: remove_file
27    
28 wakaba 1.1 sub write_file ($$) {
29     my $self = shift;
30     my $file_name = shift;
31     $self->{modified_files}->{$file_name} = 1;
32     } # write_file
33    
34     sub commit_changes ($$) {
35     my $self = shift;
36     my $msg = shift;
37    
38     for (sort {$a cmp $b} keys %{$self->{added_directories}}) {
39     _system ('cvs', 'add', $_);
40     }
41    
42     for (keys %{$self->{added_files}}) {
43 wakaba 1.2 _system ('cvs', 'add', '-kb', $_);
44 wakaba 1.1 }
45    
46     my @changed;
47     for (keys %{$self->{modified_files}}) {
48     push @changed, $_;
49     }
50    
51     if (@changed) {
52     _system ('cvs', 'ci', -m => $msg, @changed)
53     or die "$0: commit_changes: $?";
54     }
55     } # commit_changes
56    
57     sub _system (@) {
58     return ((system join (' ', map {quotemeta $_} @_) . " > /dev/null") == 0);
59     ## If false, see $? for exit value of the program.
60     ## TODO: If false, log the stdout/stderr...
61     } # _system
62    
63    
64     1;

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24