cvsserver: Determinize output to combat Perl 5.18 hash randomization
commit9462953ad25f9ad6ef933908c317dcbbfd4397ed
authorAnders Kaseorg <andersk@MIT.EDU>
Wed, 30 Oct 2013 08:44:43 +0000 (30 04:44 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 30 Oct 2013 17:30:30 +0000 (30 10:30 -0700)
tree21363de163737dbac7321bee4c09be7b00ee67b6
parent1b48d56cfb006baf12d34b5e3150ba2ec1900e08
cvsserver: Determinize output to combat Perl 5.18 hash randomization

Perl 5.18 randomizes the seed used by its hash function, so iterating
through hashes results in different orders from run to run:
  http://perldoc.perl.org/perl5180delta.html#Hash-overhaul

This usually broke t9400 (gitcvs.dbname, gitcvs.ext.dbname, when
running cmp on two .sqlite files) and t9402 (check [cvswork3] diff,
when running test_cmp on two diffs).

To fix this, hide the internal order of hashes with sort when sending
output or running database queries.

(An alternative workaround is PERL_HASH_SEED=0, but this seems nicer.)

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-cvsserver.perl