Re: [PATCHv2 03/12] git p4: remove submit failure options [a]pply and [w]rite

2012-09-15 Thread Luke Diamand
git-p4 won't be quite the same without these completely misleading and 
confusing messages :-)


Ack.



On 09/09/12 21:16, Pete Wyckoff wrote:

When a patch failed to apply, these interactive options offered
to:

 1) apply the patch anyway, leaving reject (.rej) files around, or,
 2) write the patch to a file (patch.txt)

In both cases it suggested to invoke git p4 submit --continue,
an unimplemented option.

While manually fixing the rejects and submitting the result might
work, there are many steps that must be done to the job properly:

 * apply patch
 * invoke p4 add and delete
 * change executable bits
 * p4 sync -f renamed/copied files
 * extract commit message into p4 change description and
   move Jobs lines out of description section
 * set changelist owner for --preserve-user

Plus the following manual sync/rebase will cause conflicts too,
which must be resolved once again.

Drop these workflows.  Instead users should do a sync/rebase in
git, fix the conflicts there, and do a clean git p4 submit.

Signed-off-by: Pete Wyckoffp...@padd.com
---
  git-p4.py | 20 ++--
  1 file changed, 2 insertions(+), 18 deletions(-)

diff --git a/git-p4.py b/git-p4.py
index 2405f38..e08fea1 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1200,9 +1200,8 @@ class P4Submit(Command, P4UserMap):
  if not patch_succeeded:
  print What do you want to do?
  response = x
-while response != s and response != a and response != w:
-response = raw_input([s]kip this patch / [a]pply the patch 
forcibly 
- and with .rej files / [w]rite the patch to a 
file (patch.txt) )
+while response != s:
+response = raw_input([s]kip this patch )
  if response == s:
  print Skipping! Good luck with the next patches...
  for f in editedFiles:
@@ -1210,21 +1209,6 @@ class P4Submit(Command, P4UserMap):
  for f in filesToAdd:
  os.remove(f)
  return False
-elif response == a:
-os.system(applyPatchCmd)
-if len(filesToAdd)  0:
-print You may also want to call p4 add on the following 
files:
-print  .join(filesToAdd)
-if len(filesToDelete):
-print The following files should be scheduled for deletion 
with p4 delete:
-print  .join(filesToDelete)
-die(Please resolve and submit the conflict manually and 
-+ continue afterwards with git p4 submit --continue)
-elif response == w:
-system(diffcmd +   patch.txt)
-print Patch saved to patch.txt in %s ! % self.clientPath
-die(Please resolve and submit the conflict manually and 
-continue afterwards with git p4 submit --continue)

  system(applyPatchCmd)



--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCHv2 03/12] git p4: remove submit failure options [a]pply and [w]rite

2012-09-09 Thread Pete Wyckoff
When a patch failed to apply, these interactive options offered
to:

1) apply the patch anyway, leaving reject (.rej) files around, or,
2) write the patch to a file (patch.txt)

In both cases it suggested to invoke git p4 submit --continue,
an unimplemented option.

While manually fixing the rejects and submitting the result might
work, there are many steps that must be done to the job properly:

* apply patch
* invoke p4 add and delete
* change executable bits
* p4 sync -f renamed/copied files
* extract commit message into p4 change description and
  move Jobs lines out of description section
* set changelist owner for --preserve-user

Plus the following manual sync/rebase will cause conflicts too,
which must be resolved once again.

Drop these workflows.  Instead users should do a sync/rebase in
git, fix the conflicts there, and do a clean git p4 submit.

Signed-off-by: Pete Wyckoff p...@padd.com
---
 git-p4.py | 20 ++--
 1 file changed, 2 insertions(+), 18 deletions(-)

diff --git a/git-p4.py b/git-p4.py
index 2405f38..e08fea1 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1200,9 +1200,8 @@ class P4Submit(Command, P4UserMap):
 if not patch_succeeded:
 print What do you want to do?
 response = x
-while response != s and response != a and response != w:
-response = raw_input([s]kip this patch / [a]pply the patch 
forcibly 
- and with .rej files / [w]rite the patch 
to a file (patch.txt) )
+while response != s:
+response = raw_input([s]kip this patch )
 if response == s:
 print Skipping! Good luck with the next patches...
 for f in editedFiles:
@@ -1210,21 +1209,6 @@ class P4Submit(Command, P4UserMap):
 for f in filesToAdd:
 os.remove(f)
 return False
-elif response == a:
-os.system(applyPatchCmd)
-if len(filesToAdd)  0:
-print You may also want to call p4 add on the following 
files:
-print  .join(filesToAdd)
-if len(filesToDelete):
-print The following files should be scheduled for 
deletion with p4 delete:
-print  .join(filesToDelete)
-die(Please resolve and submit the conflict manually and 
-+ continue afterwards with git p4 submit --continue)
-elif response == w:
-system(diffcmd +   patch.txt)
-print Patch saved to patch.txt in %s ! % self.clientPath
-die(Please resolve and submit the conflict manually and 
-continue afterwards with git p4 submit --continue)
 
 system(applyPatchCmd)
 
-- 
1.7.12.rc2.111.g96f7c73

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html