aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve McIntyre <steve@einval.com>2018-05-31 11:36:38 +0100
committerSteve McIntyre <steve@einval.com>2018-05-31 11:36:38 +0100
commitefc00108d1057ca715beea03271cfe9ebb55c22e (patch)
treed4888a4a16186dfe062751bee13c44a38b55273c
parent9ad73da75f60b351ba43e8be99363e58ce624367 (diff)
Add get_newest_revision() and test harness code for it
-rw-r--r--Perl/Local/VCS_CVS.pm22
-rw-r--r--Perl/Local/VCS_git.pm31
-rwxr-xr-xvcs-test.pl6
3 files changed, 59 insertions, 0 deletions
diff --git a/Perl/Local/VCS_CVS.pm b/Perl/Local/VCS_CVS.pm
index 890f544c3a6..1f140742d47 100644
--- a/Perl/Local/VCS_CVS.pm
+++ b/Perl/Local/VCS_CVS.pm
@@ -545,6 +545,28 @@ sub get_oldest_revision
return '1.1'; # earliest possible revision of any file, easy!
}
+=item get_newest_revision
+
+Return the version of the newest version of a file
+
+The first argument is a name of a file.
+
+This function finds the newest revision of a file that is known in the
+repository and returns it.
+
+Example use:
+
+ my $rev = get_newest_revision( 'foo.c');
+
+=cut
+
+sub get_newest_revision
+{
+ # NOT SUPPORTED in the CVS code
+
+ croak("NOT SUPPORTED IN THE CVS CODE");
+}
+
=item next_revision
Given a file path and a current revision of that file, move backwards
diff --git a/Perl/Local/VCS_git.pm b/Perl/Local/VCS_git.pm
index 136d19f4153..d8ef385555f 100644
--- a/Perl/Local/VCS_git.pm
+++ b/Perl/Local/VCS_git.pm
@@ -756,6 +756,37 @@ sub get_oldest_revision
croak(" Could not find any revisions for $file");
}
+=item get_newest_revision
+
+Return the version of the newest version of a file
+
+The first argument is a name of a file.
+
+This function finds the newest revision of a file that is known in the
+repository and returns it.
+
+Example use:
+
+ my $rev = get_newest_revision( 'foo.c');
+
+=cut
+
+sub get_newest_revision
+{
+ my $self = shift;
+ my $file = shift or croak("No file specified");
+
+ croak( "No such file: $file" ) unless -f $file;
+
+ my @commits = $self->_grab_commits($file);
+ if (@commits) {
+ # Simply return the last revision in our list
+ return $commits[0]{'cmt_rev'};
+ }
+ # Should hopefully never get here!
+ croak(" Could not find any revisions for $file");
+}
+
=item next_revision
Given a file path and a current revision of that file, move backwards
diff --git a/vcs-test.pl b/vcs-test.pl
index 4665f3f3370..29bdca8fc93 100755
--- a/vcs-test.pl
+++ b/vcs-test.pl
@@ -311,6 +311,12 @@ print "Got \"$ret\"\n";
##########################################################
print "#############################\n";
+print "VCS->get_newest_revision on $file :::\n";
+$ret = $VCS->get_newest_revision($file);
+print "Got \"$ret\"\n";
+
+##########################################################
+print "#############################\n";
print "VCS->next_revision (-1) on $file :::\n";
$ret = $VCS->next_revision($file, $rev1, -1);
print "Got \"$ret\", expecting \"$rev2\"\n";

© 2014-2024 Faster IT GmbH | imprint | privacy policy