You are not logged in.

#1 2017-05-18 21:47:05

FMB
Member
Registered: 2017-01-01
Posts: 22

[SOLVED] Git interactive mode fails

When I run git add in interactive mode (git add -p), the command fails and I get the following errors:

Bareword found where operator expected at /usr/lib/git-core/git-add--interactive line 1060, near "Git::comment_lines __"
	(Do you need to predeclare Git::comment_lines?)
syntax error at /usr/lib/git-core/git-add--interactive line 1060, near "Git::comment_lines __"
syntax error at /usr/lib/git-core/git-add--interactive line 1065, near "Git::comment_lines sprintf"
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1078.
Global symbol "$hunkfile" requires explicit package name (did you forget to declare "my $hunkfile"?) at /usr/lib/git-core/git-add--interactive line 1081.
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1087.
Global symbol "$hunkfile" requires explicit package name (did you forget to declare "my $hunkfile"?) at /usr/lib/git-core/git-add--interactive line 1088.
Global symbol "$comment_line_char" requires explicit package name (did you forget to declare "my $comment_line_char"?) at /usr/lib/git-core/git-add--interactive line 1089.
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1089.
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1090.
Global symbol "$hunkfile" requires explicit package name (did you forget to declare "my $hunkfile"?) at /usr/lib/git-core/git-add--interactive line 1091.
Global symbol "$oldtext" requires explicit package name (did you forget to declare "my $oldtext"?) at /usr/lib/git-core/git-add--interactive line 1100.
syntax error at /usr/lib/git-core/git-add--interactive line 1103, near "}"
/usr/lib/git-core/git-add--interactive has too many errors.

Just for reference, line 1060 says:

print $fh Git::comment_lines __("Manual hunk edit mode -- see bottom for a quick guide.\n");

and I am unable to tell what goes wrong with it...

Last edited by FMB (2017-05-19 09:33:08)

Offline

#2 2017-05-18 23:09:07

loqs
Member
Registered: 2014-03-06
Posts: 17,192

Re: [SOLVED] Git interactive mode fails

$ git init newgit
Initialized empty Git repository in /tmp/newgit/.git/
$ cd newgit/
$ touch afile
$ git add afile 
$ git commit -m "here"
[master (root-commit) 0e01645] here
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 afile
$ echo "foo bar" > afile 
$ git diff
diff --git a/afile b/afile
index e69de29..d675fa4 100644
--- a/afile
+++ b/afile
@@ -0,0 +1 @@
+foo bar
$ git add -p
diff --git a/afile b/afile
index e69de29..d675fa4 100644
--- a/afile
+++ b/afile
@@ -0,0 +1 @@
+foo bar
Stage this hunk [y,n,q,a,d,/,e,?]? 

Can not replicate with trivial test in locally generated repo.

Offline

#3 2017-05-18 23:20:27

FMB
Member
Registered: 2017-01-01
Posts: 22

Re: [SOLVED] Git interactive mode fails

Thanks loqs. This is what happens when I try to run your example:

$ git init newgit
Initialized empty Git repository in /tmp/essai/newgit/.git/
$ cd newgit/
$ touch afile
$ git add afile
$ git commit -m "here"
[master (root-commit) f21c567] here
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 afile
$ echo "foo bar" > afile
$ git diff
$ git add -p
Bareword found where operator expected at /usr/lib/git-core/git-add--interactive line 1060, near "Git::comment_lines __"
	(Do you need to predeclare Git::comment_lines?)
syntax error at /usr/lib/git-core/git-add--interactive line 1060, near "Git::comment_lines __"
syntax error at /usr/lib/git-core/git-add--interactive line 1065, near "Git::comment_lines sprintf"
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1078.
Global symbol "$hunkfile" requires explicit package name (did you forget to declare "my $hunkfile"?) at /usr/lib/git-core/git-add--interactive line 1081.
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1087.
Global symbol "$hunkfile" requires explicit package name (did you forget to declare "my $hunkfile"?) at /usr/lib/git-core/git-add--interactive line 1088.
Global symbol "$comment_line_char" requires explicit package name (did you forget to declare "my $comment_line_char"?) at /usr/lib/git-core/git-add--interactive line 1089.
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1089.
Global symbol "$fh" requires explicit package name (did you forget to declare "my $fh"?) at /usr/lib/git-core/git-add--interactive line 1090.
Global symbol "$hunkfile" requires explicit package name (did you forget to declare "my $hunkfile"?) at /usr/lib/git-core/git-add--interactive line 1091.
Global symbol "$oldtext" requires explicit package name (did you forget to declare "my $oldtext"?) at /usr/lib/git-core/git-add--interactive line 1100.
syntax error at /usr/lib/git-core/git-add--interactive line 1103, near "}"
/usr/lib/git-core/git-add--interactive has too many errors.

Might be an issue with my Perl packages, a rotten dependency?

Offline

#4 2017-05-19 07:58:30

Sparrowhawk
Member
Registered: 2014-05-06
Posts: 3

Re: [SOLVED] Git interactive mode fails

Hi FMB,

Though I did not have the time to investigate the specifics, I recently stumbled upon the exact same problem; which was caused by a local CPAN installation: a module had pulled in the CPAN Git module as a dependency, and with my local perl stuff being in front of my PATH, this broke the system git. If your setup is similar to mine,  removing the CPAN Git will fix it. Maybe playing with your PATH might as well, but I didn't try that (exams coming in fast!). And if you have the time to understand why exactly this breaks, I would certainly be interested in hearing about it!

Hope this helps,
Cheers,

Sparrowhawk


Any sufficiently advanced technology is indistinguishable from magic -- A. C. Clarke

Offline

#5 2017-05-19 09:32:45

FMB
Member
Registered: 2017-01-01
Posts: 22

Re: [SOLVED] Git interactive mode fails

You were right Sparrowhawk, I also had the CPAN Git module installed on my system. I uninstalled it by:
- listing all files to be deleted with the "make uninstall" command in /root/.cpan/build/Git-0.41-l00eyC,
- manually deleting these files (make uninstall refuses to actually perform the uninstallation),
- removing /root/.cpan/build/Git-0.41-l00eyC.

Thank you!

Offline

Board footer

Powered by FluxBB