threads / discuss / 11321

add -i not able to find get_colorbool

Subject: add -i not able to find get_colorbool

## tl;dr

3 messages between Dec 17, 2007 and Dec 17, 2007.

replies: 2people: 2as markdown or json

Johannes Schindelin· Dec 17, 2007, 14:04 UTC · lore
Hi,

I did not use "git add -i" in something like two weeks, and now it stopped working:

	$ git add -i
	Can't locate object method "get_colorbool" via package "Git" at 
		/home/gitte/bin/git-add--interactive line 15.
The second line of git-add--interactive reads thusly:
	use lib (split(/:/, $ENV{GITPERLLIB} || 
		"/home/gitte/lib/perl5/site_perl/5.8.8"));
and this puzzles me:
	$ grep -n get_colorbool /home/gitte/lib/perl5/site_perl/5.8.8/Git.pm
	584:=item get_colorbool ( NAME )
	591:sub get_colorbool {
So it has it, but cannot locate get_colorbool?

Help, Dscho

Jeff King· Dec 17, 2007, 14:31 UTC · re: Johannes Schindelin · lore

Re: add -i not able to find get_colorbool

On Mon, Dec 17, 2007 at 02:04:21PM +0000, Johannes Schindelin wrote:
Show 12 quoted lines
> The second line of git-add--interactive reads thusly:
> 
> 	use lib (split(/:/, $ENV{GITPERLLIB} || 
> 		"/home/gitte/lib/perl5/site_perl/5.8.8"));
> 
> and this puzzles me:
> 
> 	$ grep -n get_colorbool /home/gitte/lib/perl5/site_perl/5.8.8/Git.pm
> 	584:=item get_colorbool ( NAME )
> 	591:sub get_colorbool {
> 
> So it has it, but cannot locate get_colorbool?

That does seem odd. Can you try running git-add--interactive in the perl debugger and doing this:

  x \&Git::get_colorbool
  x \&Git::repository

It should tell you where it is getting the functions from (in the first case, it will presumably not find it at all, but you seem to have a Git::repository, so it should point to the file that has been loaded).

-Peff
Johannes Schindelin· Dec 17, 2007, 16:43 UTC · re: Jeff King · lore

Re: add -i not able to find get_colorbool

Hi,
On Mon, 17 Dec 2007, Jeff King wrote:
Show 24 quoted lines
> On Mon, Dec 17, 2007 at 02:04:21PM +0000, Johannes Schindelin wrote:
> 
> > The second line of git-add--interactive reads thusly:
> > 
> > 	use lib (split(/:/, $ENV{GITPERLLIB} || 
> > 		"/home/gitte/lib/perl5/site_perl/5.8.8"));
> > 
> > and this puzzles me:
> > 
> > 	$ grep -n get_colorbool /home/gitte/lib/perl5/site_perl/5.8.8/Git.pm
> > 	584:=item get_colorbool ( NAME )
> > 	591:sub get_colorbool {
> > 
> > So it has it, but cannot locate get_colorbool?
> 
> That does seem odd. Can you try running git-add--interactive in the perl 
> debugger and doing this:
> 
>   x \&Git::get_colorbool
>   x \&Git::repository
> 
> It should tell you where it is getting the functions from (in the first 
> case, it will presumably not find it at all, but you seem to have a 
> Git::repository, so it should point to the file that has been loaded).
Good call!
	main::(/home/gitte/bin/git-add--interactive:8):
	8:      my ($prompt_color, $header_color, $help_color, $normal_color);
	  DB<1> x \&Git::get_colorbool
	0  CODE(0x853b25c)
	   -> &CODE(0x853b25c) in ???
	  DB<2>   x \&Git::repository
	0  CODE(0x833e8ac)
	   -> &Git::repository in 
	/home/gitte/lib/perl5/site_perl/5.8.8/i586-linux-thread-multi/Git.pm:145-217

So it seems that somehow on 8. Nov 10:42 Git.pm was installed into i586-linux-thread-multi/ and is preferred over the Git.pm which was installed on 6. Dec 12:24 into site_perl/5.8.8/.

I have no idea how that happened on Nov 8, could be that I was desperate enough to hand-copy Git.pm there. Git.pm seems to hate me (this was not the first time I had problems with it).

Ciao, Dscho

← back to recent threads