git: Avoid adding files when committing, so as not to implicitly add files like recentchanges files that are not normally checked in, when fixing links after rename.

master
Joey Hess 2010-11-29 13:42:03 -04:00
parent a5120846cb
commit 170cb02479
3 changed files with 16 additions and 10 deletions

View File

@ -496,16 +496,16 @@ sub rcs_commit (@) {
return $conflict if defined $conflict;
}
rcs_add($params{file});
return rcs_commit_staged(
message => $params{message},
session => $params{session},
);
return rcs_commit_helper(@_);
}
sub rcs_commit_staged (@) {
# Commits all staged changes. Changes can be staged using rcs_add,
# rcs_remove, and rcs_rename.
return rcs_commit_helper(@_);
}
sub rcs_commit_helper (@) {
my %params=@_;
my %env=%ENV;
@ -546,10 +546,12 @@ sub rcs_commit_staged (@) {
$params{message}.=".";
}
}
push @opts, '-q';
# git commit returns non-zero if file has not been really changed.
# so we should ignore its exit status (hence run_or_non).
if (run_or_non('git', 'commit', @opts, '-m', $params{message})) {
if (exists $params{file}) {
push @opts, '--', $params{file};
}
# git commit returns non-zero if nothing really changed.
# So we should ignore its exit status (hence run_or_non).
if (run_or_non('git', 'commit', '-m', $params{message}, '-q', @opts)) {
if (length $config{gitorigin_branch}) {
run_or_cry('git', 'push', $config{gitorigin_branch});
}

3
debian/changelog vendored
View File

@ -15,6 +15,9 @@ ikiwiki (3.20101113) UNRELEASED; urgency=low
as a template for a new page.
* git: Fix temp file location.
* rename: Fix to pass named parameters to rcs_commit.
* git: Avoid adding files when committing, so as not to implicitly add
files like recentchanges files that are not normally checked in,
when fixing links after rename.
-- Joey Hess <joeyh@debian.org> Tue, 16 Nov 2010 14:23:47 -0400

View File

@ -15,4 +15,5 @@ because of the link fixup code run when renaming a page. --[[Joey]]
> 'git add .' to be called. I've fixed that.
>
> I think there is still potential for the problem I described above to
> occur during a rename or possibly otherwise. --[[Joey]]
> occur during a rename or possibly otherwise. Ok.. fixed `rcs_commit`
> to not add too. [[done]] --[[Joey]]