删除 git 块的中间行
removing middle lines of a git chunk
我正在尝试删除 git patch -p foobar
的少量差异行。
结果块是这样的(没有git的评论):
@@ -142,4 +150,26 @@
{
perr( "fcntl" );
+ return stream_s();
+ }
+ return stream;
+}
+
+int pid_read( stream_s* data, unsigned char* buff, size_t max_siz, size_t *rd_size )
+{
+ assert( data );
+ ssize_t rd = read( data->fd, buff, max_siz );
+ if( rd < 0 )
+ {
+ return waitpid( data->pid, NULL, WNOHANG ) <= 0;
+ }
+ *rd_size = static_cast<size_t>( rd );
+ return 1;
+}
+
+string_list_t pkg_list( char const* script )
+{
+ stream_s stream;
+ if( ( stream = init_command( script ) ) == stream_s() )
+ {
return string_list_t();
}
我要删除的块是函数 pid_read。因此,按照快速指南,只需删除这些行就可以了,但实际上,git 拒绝更改,说补丁无法干净地应用。没有更多信息。
我试图在较小的样本上重现该问题,但我不能...这不是我第一次遇到这个问题,通常我 "solve" 通过手动进行更改来解决, 但当变化更复杂时,它并不是很好。
这将需要一些 line number tinkering 才能应用已编辑的帅哥。 (@@ -142,4 +150,26 @@
部分)
应用经过编辑的大块头的更简单方法是尝试并:
- 编辑并删除除第一部分以外的所有内容(即您不想要的部分之前的部分)
- 然后制作第二个补丁,删除所有第一部分(包括您不想要的部分),只留下 在您不想要的部分 之后的部分.
看看这两个补丁是否可以应用。
我正在尝试删除 git patch -p foobar
的少量差异行。
结果块是这样的(没有git的评论):
@@ -142,4 +150,26 @@
{
perr( "fcntl" );
+ return stream_s();
+ }
+ return stream;
+}
+
+int pid_read( stream_s* data, unsigned char* buff, size_t max_siz, size_t *rd_size )
+{
+ assert( data );
+ ssize_t rd = read( data->fd, buff, max_siz );
+ if( rd < 0 )
+ {
+ return waitpid( data->pid, NULL, WNOHANG ) <= 0;
+ }
+ *rd_size = static_cast<size_t>( rd );
+ return 1;
+}
+
+string_list_t pkg_list( char const* script )
+{
+ stream_s stream;
+ if( ( stream = init_command( script ) ) == stream_s() )
+ {
return string_list_t();
}
我要删除的块是函数 pid_read。因此,按照快速指南,只需删除这些行就可以了,但实际上,git 拒绝更改,说补丁无法干净地应用。没有更多信息。
我试图在较小的样本上重现该问题,但我不能...这不是我第一次遇到这个问题,通常我 "solve" 通过手动进行更改来解决, 但当变化更复杂时,它并不是很好。
这将需要一些 line number tinkering 才能应用已编辑的帅哥。 (@@ -142,4 +150,26 @@
部分)
应用经过编辑的大块头的更简单方法是尝试并:
- 编辑并删除除第一部分以外的所有内容(即您不想要的部分之前的部分)
- 然后制作第二个补丁,删除所有第一部分(包括您不想要的部分),只留下 在您不想要的部分 之后的部分.
看看这两个补丁是否可以应用。