#234: mk_gitignore.pl (lib/Parrot/Manifest.pm) needs svk
---------------------+------------------------------------------------------
 Reporter:  fperrad  |       Owner:     
     Type:  bug      |      Status:  new
 Priority:  normal   |   Milestone:     
Component:  none     |     Version:     
 Severity:  medium   |    Keywords:     
     Lang:           |       Patch:     
 Platform:           |  
---------------------+------------------------------------------------------

Comment(by Infinoid):

 Ok, I'm using git here, but I'm not really familiar with Manifest.pm and
 don't know what its specific needs are.  So I'll start by discussing what
 a git checkout looks like, and various details related to that.

 1.  Git users do have a ".git" directory, but only in the root of the
 checkout, not one per subfolder the way svn does.

 2.  Just because someone's using git does not mean they are using git-svn
 directly.  (I'm not; I'm using pure git on a dozen local checkouts across
 several machines and bouncing everything through a git-svn repo sitting on
 a remote but fast server.)

 3.  Even though there is a "git svn propget" command available for git-svn
 checkouts, it's not necessarily available in all git checkouts.  And if
 you try to run it on a non git-svn checkout (like the kind I tend to use),
 the command just hangs at 100% CPU forever.

 4.  If you need to tell git-svn checkouts apart from straight git ones, I
 suppose you could look for the existence of the subdirectory ".git/svn
 /git-svn".  But I would prefer solutions which work equally well for raw
 git checkouts, if possible.

 5.  No matter which kind of checkout you have, you can parse the output of
 "git ls-tree -r HEAD" to get a list of all the tracked files in the tree.
 The output of that looks like:

 {{{
 100644 blob 912cacd53dd0c3344c6af407a0150be8bce35355
 tools/build/ops2c.pl
 100644 blob 05e5b9c26f1f4ecfa7a73a7ed22337c82c02f528
 tools/build/ops2pm.pl
 100644 blob f31ddb9ca03769d1d4572aaff1fb3ff1805208b0
 tools/build/parrot_config_c.pl
 100644 blob 19645014f1a070b26257e6e331c6eae3cd51f59d
 tools/build/pbcversion_h.pl
 100644 blob e2aff93ab7581e5ca76975f70f9612fe895505cf
 tools/build/pmc2c.pl
 100644 blob b9ef9b1d0da041deefdd08f97901a6e768ac60a0
 tools/build/vtable_extend.pl
 100644 blob 32972fd744fb0d16461f0dc5cc1b135693e62bc4
 tools/build/vtable_h.pl
 100644 blob 693e7a8119f64b47bff029ea606ff5dfa3203ee0    tools/dev/.gdbinit
 100755 blob 382c82ceb5338c184c6ae53b58cc01fa7a809389    tools/dev/as2c.pl
 100644 blob 334c63d63095395f900511c8da607b5da0f19ff5
 tools/dev/bench_op.pir
 100644 blob ebfdddcc91e26b152af09ee819b5ee8acd9732a2
 tools/dev/cc_flags.pl
 }}}

 With regards to the source line you mentioned above, I did try the
 following patch:

 {{{
 -        cmd        => -d '.svn' ? 'svn' : 'svk',
 +        cmd        => -d '.svn' ? 'svn' : -d '.git' ? 'git' : 'svk',
 }}}

 This patch gets me farther, but I still get the following manifest_tests
 failures:

 {{{
 Test Summary Report
 -------------------
 t/manifest/02-regenerate_file (Wstat: 256 Tests: 12 Failed: 1)
   Failed test:  5
   Non-zero exit status: 1
 t/manifest/03-regenerate_skip (Wstat: 256 Tests: 10 Failed: 1)
   Failed test:  5
   Non-zero exit status: 1
 }}}

 I also get an error "git: 'propget' is not a git-command. See 'git
 --help'." from t/manifest/05-alt_skip.t and a few other tests, but those
 tests still seem to pass fine.

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/234#comment:2>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to