All of lore.kernel.org
 help / color / mirror / Atom feed
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";
>  }

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.