#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