A question about using 'add -p' to split the patch

5 messages, 2 authors, 2016-06-15 · open the first message on its own page

A question about using 'add -p' to split the patch

From: Ping Yin <hidden>
Date: 2016-06-15 22:46:57

file bt.php in the HEAD:

function bt_add($path) {
 return;
}

file bt.php in the working directory:

function bt_move($path, $pos) {
  return;
}
function bt_add($path, $pos) {
  bt_move($path, $pos)
  return;
}

Now i want to split the change into two parts:
First introduce bt_move
Then add a param pos to bt_add and call bt_move

With the 'e' action of 'add -p', i got

-function bt_add($path) {
+function bt_move($path, $pos) {
+  return;
+}
+function bt_add($path, $pos) {
+  bt_move($path, $pos)
   return;
 }

Then, i want to edit the patch to get


function bt_move($path, $pos) {
  return;
}
function bt_add($path) {
  return;
}

However, whatever i do, the patch fails to apply. Any suggestion?

-


Ping Yin

Re: A question about using 'add -p' to split the patch

From: David Aguilar <hidden>
Date: 2016-06-15 22:46:57

On Mon, Jun 15, 2009 at 11:08:51AM +0800, Ping Yin wrote:
file bt.php in the HEAD:

function bt_add($path) {
 return;
}

file bt.php in the working directory:

function bt_move($path, $pos) {
  return;
}
function bt_add($path, $pos) {
  bt_move($path, $pos)
  return;
}

Now i want to split the change into two parts:
First introduce bt_move
Then add a param pos to bt_add and call bt_move

With the 'e' action of 'add -p', i got

-function bt_add($path) {
+function bt_move($path, $pos) {
+  return;
+}
+function bt_add($path, $pos) {
+  bt_move($path, $pos)
   return;
 }

Then, i want to edit the patch to get


function bt_move($path, $pos) {
  return;
}
function bt_add($path) {
  return;
}

However, whatever i do, the patch fails to apply. Any suggestion?
Use git-gui or git-cola to select just bt_move() for addition.
You can stage specific lines.

After doing that it's often a good idea to git stash --keep-index
so you can test it before committing.

enjoy,

-- 
		David

Re: A question about using 'add -p' to split the patch

From: Ping Yin <hidden>
Date: 2016-06-15 22:46:57

On Mon, Jun 15, 2009 at 2:12 PM, David Aguilar[off-list ref] wrote:
On Mon, Jun 15, 2009 at 11:08:51AM +0800, Ping Yin wrote:
quoted
file bt.php in the HEAD:

function bt_add($path) {
 return;
}

file bt.php in the working directory:

function bt_move($path, $pos) {
  return;
}
function bt_add($path, $pos) {
  bt_move($path, $pos)
  return;
}

Now i want to split the change into two parts:
First introduce bt_move
Then add a param pos to bt_add and call bt_move

With the 'e' action of 'add -p', i got

-function bt_add($path) {
+function bt_move($path, $pos) {
+  return;
+}
+function bt_add($path, $pos) {
+  bt_move($path, $pos)
   return;
 }

Then, i want to edit the patch to get


function bt_move($path, $pos) {
  return;
}
function bt_add($path) {
  return;
}

However, whatever i do, the patch fails to apply. Any suggestion?
Use git-gui or git-cola to select just bt_move() for addition.
You can stage specific lines.
Doesn't the 'e' action of 'add -p' do the same job with git-gui?

Re: A question about using 'add -p' to split the patch

From: David Aguilar <hidden>
Date: 2016-06-15 22:46:57

On Mon, Jun 15, 2009 at 02:24:39PM +0800, Ping Yin wrote:
On Mon, Jun 15, 2009 at 2:12 PM, David Aguilar[off-list ref] wrote:
quoted
On Mon, Jun 15, 2009 at 11:08:51AM +0800, Ping Yin wrote:
quoted
file bt.php in the HEAD:

function bt_add($path) {
 return;
}

file bt.php in the working directory:

function bt_move($path, $pos) {
  return;
}
function bt_add($path, $pos) {
  bt_move($path, $pos)
  return;
}

Now i want to split the change into two parts:
First introduce bt_move
Then add a param pos to bt_add and call bt_move

With the 'e' action of 'add -p', i got

-function bt_add($path) {
+function bt_move($path, $pos) {
+  return;
+}
+function bt_add($path, $pos) {
+  bt_move($path, $pos)
   return;
 }

Then, i want to edit the patch to get


function bt_move($path, $pos) {
  return;
}
function bt_add($path) {
  return;
}

However, whatever i do, the patch fails to apply. Any suggestion?
Use git-gui or git-cola to select just bt_move() for addition.
You can stage specific lines.
Doesn't the 'e' action of 'add -p' do the same job with git-gui?
It should.

I tried it in git-{cola,gui} and I was able to do it by first staging
the +bt_add(a,b) line, and then staging only the -bt_add(a) line.

For add -e I got it to work by editing the patch to;

+function bt_move($path, $pos) {
+  return;
+}
 function bt_add($path) {
   return;
 }

The reason it's hard to get right is that you have to
reconstruct the context of the original content for the
adds/removes and remember to add the space before the
reconstructed bt_add($path).

Those kinda details are usually easier for software to get right
;-)

-- 
		David

Re: A question about using 'add -p' to split the patch

From: Ping Yin <hidden>
Date: 2016-06-15 22:46:57

For add -e I got it to work by editing the patch to;

+function bt_move($path, $pos) {
+  return;
+}
 function bt_add($path) {
   return;
 }

The reason it's hard to get right is that you have to
reconstruct the context of the original content for the
adds/removes and remember to add the space before the
reconstructed bt_add($path).
Thanks very much, i forgot the space before the reconstructed bt_add($path) :-)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help