git am error: “error: while searching for:”
git am error: “error: while searching for:”
运行ning git am
我收到上面的错误。手动比较我没有看到任何问题。谁能告诉我错误在哪里?
$ git am 0012-Do-not-die-when-something-nasty-happen-in-the-comman.patch --reject
Applying: Do not die when something nasty happen in the command
Checking patch lib/Devel/DebugHooks/CmdProcessor.pm...
error: while searching for:
return 0 unless $cmd && exists $DB::commands->{ $cmd };
# The command also should return defined value to keep interaction
if( defined (my $result = $DB::commands->{ $cmd }( $args_str )) ) {
return $result unless ref $result;
# Allow commands to evaluate $expr at a debugged script context
error: patch failed: lib/Devel/DebugHooks/CmdProcessor.pm:14
Applying patch lib/Devel/DebugHooks/CmdProcessor.pm with 1 reject...
Rejected hunk #1.
Patch failed at 0001 Do not die when something nasty happen in the command
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
.rej:
$ cat CmdProcessor.pm.rej
diff a/lib/Devel/DebugHooks/CmdProcessor.pm b/lib/Devel/DebugHooks/CmdProcessor.pm (rejected hunks)
@@ -14,7 +14,10 @@ sub process {
return 0 unless $cmd && exists $DB::commands->{ $cmd };
# The command also should return defined value to keep interaction
- if( defined (my $result = $DB::commands->{ $cmd }( $args_str )) ) {
+ my $result = eval { $DB::commands->{ $cmd }( $args_str ) };
+ do{ print $DB::OUT "'$cmd' command died: $@"; return 1; } if $@;
+
+ if( defined $result ) {
return $result unless ref $result;
# Allow commands to evaluate $expr at a debugged script context
来源:
$ cat CmdProcessor.pm
package Devel::DebugHooks::CmdProcessor;
sub process {
my( $dbg ) = shift;
my( $cmd, $args_str ) = shift =~ m/^([\w.]+)(?:\s+(.*))?$/;
$args_str //= '';
return 0 unless $cmd and exists $DB::commands->{ $cmd };
# The command also should return defined value to keep interaction
if( defined (my $result = $DB::commands->{ $cmd }( $args_str )) ) {
return $result unless ref $result;
# Allow commands to evaluate $expr at a debugged script context
if( ref( $result ) eq 'HASH' ) {
return $result->{ code }->(
$args_str
,DB::eval( $result->{ expr } ) # FIX: it is not evaled at script context
);
}
return $result;
}
else {
return;
}
return 0;
}
1;
行尾是 unix。
尝试 运行 git apply
手动给出下一个错误:
$ git apply CmdProcessor.pm.rej
fatal: patch fragment without header at line 2: @@ -14,7 +14,10 @@ sub process {
git 正在搜索行
return 0 unless $cmd && exists $DB::commands->{ $cmd };
但是您的代码包含行
return 0 unless $cmd and exists $DB::commands->{ $cmd };
(我标记了 && 和 和 之间的区别)因此补丁不适用。
您可以找到有关 git 解决冲突的不错教程 here。
运行ning git am
我收到上面的错误。手动比较我没有看到任何问题。谁能告诉我错误在哪里?
$ git am 0012-Do-not-die-when-something-nasty-happen-in-the-comman.patch --reject
Applying: Do not die when something nasty happen in the command
Checking patch lib/Devel/DebugHooks/CmdProcessor.pm...
error: while searching for:
return 0 unless $cmd && exists $DB::commands->{ $cmd };
# The command also should return defined value to keep interaction
if( defined (my $result = $DB::commands->{ $cmd }( $args_str )) ) {
return $result unless ref $result;
# Allow commands to evaluate $expr at a debugged script context
error: patch failed: lib/Devel/DebugHooks/CmdProcessor.pm:14
Applying patch lib/Devel/DebugHooks/CmdProcessor.pm with 1 reject...
Rejected hunk #1.
Patch failed at 0001 Do not die when something nasty happen in the command
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
.rej:
$ cat CmdProcessor.pm.rej
diff a/lib/Devel/DebugHooks/CmdProcessor.pm b/lib/Devel/DebugHooks/CmdProcessor.pm (rejected hunks)
@@ -14,7 +14,10 @@ sub process {
return 0 unless $cmd && exists $DB::commands->{ $cmd };
# The command also should return defined value to keep interaction
- if( defined (my $result = $DB::commands->{ $cmd }( $args_str )) ) {
+ my $result = eval { $DB::commands->{ $cmd }( $args_str ) };
+ do{ print $DB::OUT "'$cmd' command died: $@"; return 1; } if $@;
+
+ if( defined $result ) {
return $result unless ref $result;
# Allow commands to evaluate $expr at a debugged script context
来源:
$ cat CmdProcessor.pm
package Devel::DebugHooks::CmdProcessor;
sub process {
my( $dbg ) = shift;
my( $cmd, $args_str ) = shift =~ m/^([\w.]+)(?:\s+(.*))?$/;
$args_str //= '';
return 0 unless $cmd and exists $DB::commands->{ $cmd };
# The command also should return defined value to keep interaction
if( defined (my $result = $DB::commands->{ $cmd }( $args_str )) ) {
return $result unless ref $result;
# Allow commands to evaluate $expr at a debugged script context
if( ref( $result ) eq 'HASH' ) {
return $result->{ code }->(
$args_str
,DB::eval( $result->{ expr } ) # FIX: it is not evaled at script context
);
}
return $result;
}
else {
return;
}
return 0;
}
1;
行尾是 unix。
尝试 运行 git apply
手动给出下一个错误:
$ git apply CmdProcessor.pm.rej
fatal: patch fragment without header at line 2: @@ -14,7 +14,10 @@ sub process {
git 正在搜索行
return 0 unless $cmd && exists $DB::commands->{ $cmd };
但是您的代码包含行
return 0 unless $cmd and exists $DB::commands->{ $cmd };
(我标记了 && 和 和 之间的区别)因此补丁不适用。
您可以找到有关 git 解决冲突的不错教程 here。