删除git块的中间行
我正在尝试使用删除git块的中间行,git,diff,patch,Git,Diff,Patch,我正在尝试使用git patch-p foobar删除少量的diff行。 结果块是这样的(没有git的注释): @-142,4+150,26@@ { perr(“fcntl”); +返回流_s(); + } +回流; +} + +int pid_read(流*数据、无符号字符*buff、大小\u t最大大小、大小\u t*rd大小) +{ +断言(数据); +ssize_t rd=读取(数据->fd,buff,最大尺寸); +if(rdpid,NULL,WNOHANG),这将需要一些来应用编辑后
git patch-p foobar
删除少量的diff行。
结果块是这样的(没有git的注释):
@-142,4+150,26@@
{
perr(“fcntl”);
+返回流_s();
+ }
+回流;
+}
+
+int pid_read(流*数据、无符号字符*buff、大小\u t最大大小、大小\u t*rd大小)
+{
+断言(数据);
+ssize_t rd=读取(数据->fd,buff,最大尺寸);
+if(rd<0)
+ {
+返回waitpid(data->pid,NULL,WNOHANG),这将需要一些来应用编辑后的hunk。(部分@-142,4+150,26@
应用已编辑的hunk的一个更简单的方法是尝试:
- 编辑并删除除第一个零件(不需要的部分之前的零件)以外的所有内容
- 然后制作第二个补丁,删除所有第一部分(包括您不想要的部分),只留下不想要的部分之后的部分
看看这两个补丁是否可以应用。奇怪……当我第一次尝试时,甚至更改了@行,它都不起作用。我跳过了它,现在只是重做了它,它就起作用了。我能看到的唯一区别是,一开始,我接受了以前的其他更改,与第二次不同。至少现在它起作用了。谢谢。@user3459474重做它e行修补?或其他操作?起初,我在同一个文件中有其他部分包含要接受/拒绝的信息。当时编辑该部分不起作用,即使修补了@@l行。所以我只是在编写更多代码时将其放在一边,并在您的回复后尝试。只有该部分需要修改,而且它起作用了。我猜问题出在哪里我之所以这样做是因为行的变化比git在@行中所说的要大,这可能会引起一些冲突?@user3459474是的,这是我在阅读时所怀疑的
@@ -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();
}