Re: [PATCH] cvsexportcommit: be graceful when "cvs status" reorders the arguments
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 18, 2008, 03:20 UTC
- Message-ID
- <7vwsp3uf0u.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <7vbq6fvudp.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 15 quoted lines
> Side note. I personally do not like naming hashes and arrays
> plural, and call a hash of paths and list of files %path and
> @file respectively. That convention makes it easier to read
> things like these:
>
> $file[4] ;# fourth file, not $files[4]
> $path{'hello.c'} ;# path for 'hello.c', not $paths{'hello.c'}
> ...
> + while (@canstatusfiles) {
> + my %basename = ();
> + my @status = ();
> + my @leftover = ();
> + for (my $i = 0; $i < @canstatusfiles; $i++) {
> + my $name = $canstatusfiles[$i];
> + my $basename = basename($name);Side note to the side note.
A related naming guideline I failed to follow (because I was mostly copying your code) suggests that the hash here should be named %fullname, instead of %basename. Then logically:
$fullname{'hello.c'} = 'a/b/hello.c';that is, you consult %fullname hash using the basename as the key to extract the corresponding fullname. The naming guideline is "Name the dictionary after its values, not after its keys."