From: Junio C Hamano <gitster@pobox.com>
To: ericc <eric.chamberland@giref.ulaval.ca>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] Make 'cvs -n commit ...' not to commit
Date: Fri, 23 Mar 2012 11:39:19 -0700 [thread overview]
Message-ID: <7vhaxftb54.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <20120323131100.7262D440B33@melkor.giref.ulaval.ca> (ericc's message of "Thu, 22 Mar 2012 16:57:43 -0400")
ericc <eric.chamberland@giref.ulaval.ca> writes:
> Actually, doing a 'cvs -n commit' will _do_ the commit...
> With this patch, it now goes through the code, but don't do the commit.
OK.
> A further progress would be to do the pre-commit hook is possible...
It is not clear what you meant here.
> Eric Chamberland <Eric.Chamberland@giref.ulaval.ca>
> ---
> git-cvsserver.perl | 9 ++++++++-
> 1 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/git-cvsserver.perl b/git-cvsserver.perl
> index b8eddab..67ec4d0 100755
> --- a/git-cvsserver.perl
> +++ b/git-cvsserver.perl
> @@ -1395,6 +1395,9 @@ sub req_ci
> push @committedfiles, $committedfile;
> $log->info("Committing $filename");
>
> + # Don't want to actually _DO_ the update if -n specified
> + unless ( $state->{globaloptions}{-n} )
> + {
> system("mkdir","-p",$dirpart) unless ( -d $dirpart );
>
> unless ( $rmflag )
> @@ -1424,6 +1427,7 @@ sub req_ci
> $log->info("Updating file '$filename'");
> system("git", "update-index", $filename);
> }
> + }
> }
I understand that you tried to make the patch smaller by avoiding
re-indenting, but this is *yucky*.
It looks to me that the above part could be solved with:
unless (...) {
next;
}
I think the function being patched is too big. Wouldn't it be better to
have a refactoring patch to move the above per-path logic to a helper
function that deals with a single path, and then insert the "omit call to
that helper when run with -n" code in a separate patch?
The same comment applies to the other hunk.
Also I notice that the indentation used throughout the file is somewhat
broken (e.g. "Emulate by running hooks/update" part is indented to 8
columns, but earlier parts use 4 space indent). The right structure for
this change may be:
Patch 1: Fix indentation (and do nothing else) to uniformly indent with
HT;
Patch 2: Refactor this big funciton using a handful of helper functions
(and do nothing else);
Patch 3: Omit calls to these helper functions under -n option.
> @@ -1434,6 +1438,9 @@ sub req_ci
> return;
> }
>
> + # Don't want to actually _DO_ the update if -n specified
> + unless ( $state->{globaloptions}{-n} )
> + {
> my $treehash = `git write-tree`;
> chomp $treehash;
>
> @@ -1537,7 +1544,7 @@ sub req_ci
> print "/$filepart/1.$meta->{revision}//$kopts/\n";
> }
> }
> -
> + }
> cleanupWorkTree();
> print "ok\n";
> }
next prev parent reply other threads:[~2012-03-23 18:39 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-22 20:57 [PATCH] Make 'cvs -n commit ...' not to commit ericc
2012-03-23 18:39 ` Junio C Hamano [this message]
2012-03-23 19:02 ` Eric Chamberland
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vhaxftb54.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=eric.chamberland@giref.ulaval.ca \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).