Re: git p4 submit failing

2013-05-07 Thread Christopher Yee Mon
I reset all the files to be lf. I also forced all the windows users
IDEs to use Unix endings. I haven't seen that error since then


Thanks for the assistance

On Thu, Apr 18, 2013 at 7:43 PM, Pete Wyckoff p...@padd.com wrote:
 christopher.yee...@gmail.com wrote on Thu, 18 Apr 2013 11:24 -0500:
 The issue is caused by the line endings. I retested the problem with a
 different file and in this case, the error is caused by the line
 endings of the file checked out in the perforce workspace being
 win-style crlf, and the line endings of the file in the git repo being
 unix style lf. (In this scenario, I took out the .gitattributes,
 core.autocrlf was set to false and LineEnd was set to share)

 In this case, I checked out the file in perforce, ran dos2unix against
 it, and submitted that, then ran git p4 submit and it worked.

 I noticed that the error is caused by the git apply failing in the def
 applyCommit(self, id) function at lines 1296-1305.

 diffcmd = git format-patch -k --stdout \%s^\..\%s\ % (id, id)
 patchcmd = diffcmd +  | git apply 
 tryPatchCmd = patchcmd + --check -
 applyPatchCmd = patchcmd + --check --apply -
 patch_succeeded = True

 if os.system(tryPatchCmd) != 0:
 fixed_rcs_keywords = False
 patch_succeeded = False
 print Unfortunately applying the change failed!

 So most likely in git apply command, it can't find the changes because
 of the line endings being different between them. I couldn't find a
 parameter that would magically make it work. When I added --verbose to
 git apply the output only says:
 error: while searching for:
 and then the first lines of the first diff

 That seems like exactly the correct diagnosis of the problem.
 What to do about it, I'm not so sure.

 We could suggest that people use the same line-ending conventions
 in both git and p4 land.  This is easy if they are both lf.  But,
 if crlf is preferred, do you know how to configure git to use
 crlf line endings?  Does that fix it?  There's also the config
 setting apply.ignorewhitespace; not sure if that would allow
 the apply step to apply an lf-ending patch to the crlf-ending p4
 workspace.

 -- Pete

 Hello Simon,

 I have CCed you to alert you to the possible bug. Any assistance would
 be appreciated.


 On Sat, Apr 13, 2013 at 5:09 PM, Christopher Yee Mon
 christopher.yee...@gmail.com wrote:
  Yes this is the case.
 
  Many of the files have crlf endings.
 
  core.autocrlf was recently set to input. I can't remember the timeline
  exactly though, but in addition to this, I have a .gitattributes file
  with the default set to text=auto (* text=auto) and the php files set
  to text eol=lf (*.php text eol=lf) Also my perforce workspace's
  LineEnd setting is set to Share.
 
  I've experienced the behavior in both .php and .xml files though
 
  Before all of this started I had core.autocrlf set to false, and no
  .gitattributes file and perforce workspace's LineEnd was set to the
  default, but I got a conflict where the only difference was the line
  endings, so I changed things to the way they are now.
 
  Any recommendations? Should I change everything back the way it was?
 
  On Sat, Apr 13, 2013 at 5:51 PM, Pete Wyckoff p...@padd.com wrote:
  l...@diamand.org wrote on Thu, 11 Apr 2013 21:19 +0100:
  Just a thought, but check the files that are failing to see if they've
  got RCS keywords in them ($Id$, $File$, $Date$, etc). These cause all
  sorts of nasty problems.
 
  That's assuming it's definitely not a CRLF line ending problem on 
  Windows.
 
  I had recently debugged a similar-looking problem
  where core.autocrlf was set to input.
 
  Christopher, if you have this set and/or the .xml files
  have ^M (CRLF) line endings, please let us know.
 
  -- Pete
 
 
  On Thu, Apr 11, 2013 at 8:01 PM, Christopher Yee Mon
  christopher.yee...@gmail.com wrote:
   I tried running git p4 submit on a repo that I've been running as an
   interim bridge between git and perforce. Multiple people are using the
   repo as a remote and its being periodically submitted back to
   perforce.
  
   It's been working mostly fine. Then one day out of the blue I get this
   error. I can no longer push any git commits to perforce. (This is from
   the remote repo which I am pushing back to perforce)
  
   user@hostname:~/Source/code$ git p4 submit -M --export-labels
   Perforce checkout for depot path //depot/perforce/workspace/ located
   at /home/user/Source/git-p4-area/perforce/workspace/
   Synchronizing p4 checkout...
   ... - file(s) up-to-date.
   Applying ffa390f comments in config xml files
   //depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened 
   for edit
   //depot/perforce/workspace/sub/folder/structure/second.xml#3 - opened 
   for edit
   //depot/perforce/workspace/sub/folder/structure/third.xml#3 - opened 
   for edit
   

Re: git p4 submit failing

2013-04-18 Thread Christopher Yee Mon
The issue is caused by the line endings. I retested the problem with a
different file and in this case, the error is caused by the line
endings of the file checked out in the perforce workspace being
win-style crlf, and the line endings of the file in the git repo being
unix style lf. (In this scenario, I took out the .gitattributes,
core.autocrlf was set to false and LineEnd was set to share)

In this case, I checked out the file in perforce, ran dos2unix against
it, and submitted that, then ran git p4 submit and it worked.

I noticed that the error is caused by the git apply failing in the def
applyCommit(self, id) function at lines 1296-1305.

diffcmd = git format-patch -k --stdout \%s^\..\%s\ % (id, id)
patchcmd = diffcmd +  | git apply 
tryPatchCmd = patchcmd + --check -
applyPatchCmd = patchcmd + --check --apply -
patch_succeeded = True

if os.system(tryPatchCmd) != 0:
fixed_rcs_keywords = False
patch_succeeded = False
print Unfortunately applying the change failed!

So most likely in git apply command, it can't find the changes because
of the line endings being different between them. I couldn't find a
parameter that would magically make it work. When I added --verbose to
git apply the output only says:
error: while searching for:
and then the first lines of the first diff

Hello Simon,

I have CCed you to alert you to the possible bug. Any assistance would
be appreciated.


On Sat, Apr 13, 2013 at 5:09 PM, Christopher Yee Mon
christopher.yee...@gmail.com wrote:
 Yes this is the case.

 Many of the files have crlf endings.

 core.autocrlf was recently set to input. I can't remember the timeline
 exactly though, but in addition to this, I have a .gitattributes file
 with the default set to text=auto (* text=auto) and the php files set
 to text eol=lf (*.php text eol=lf) Also my perforce workspace's
 LineEnd setting is set to Share.

 I've experienced the behavior in both .php and .xml files though

 Before all of this started I had core.autocrlf set to false, and no
 .gitattributes file and perforce workspace's LineEnd was set to the
 default, but I got a conflict where the only difference was the line
 endings, so I changed things to the way they are now.

 Any recommendations? Should I change everything back the way it was?

 On Sat, Apr 13, 2013 at 5:51 PM, Pete Wyckoff p...@padd.com wrote:
 l...@diamand.org wrote on Thu, 11 Apr 2013 21:19 +0100:
 Just a thought, but check the files that are failing to see if they've
 got RCS keywords in them ($Id$, $File$, $Date$, etc). These cause all
 sorts of nasty problems.

 That's assuming it's definitely not a CRLF line ending problem on Windows.

 I had recently debugged a similar-looking problem
 where core.autocrlf was set to input.

 Christopher, if you have this set and/or the .xml files
 have ^M (CRLF) line endings, please let us know.

 -- Pete


 On Thu, Apr 11, 2013 at 8:01 PM, Christopher Yee Mon
 christopher.yee...@gmail.com wrote:
  I tried running git p4 submit on a repo that I've been running as an
  interim bridge between git and perforce. Multiple people are using the
  repo as a remote and its being periodically submitted back to
  perforce.
 
  It's been working mostly fine. Then one day out of the blue I get this
  error. I can no longer push any git commits to perforce. (This is from
  the remote repo which I am pushing back to perforce)
 
  user@hostname:~/Source/code$ git p4 submit -M --export-labels
  Perforce checkout for depot path //depot/perforce/workspace/ located
  at /home/user/Source/git-p4-area/perforce/workspace/
  Synchronizing p4 checkout...
  ... - file(s) up-to-date.
  Applying ffa390f comments in config xml files
  //depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/second.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/third.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/forth.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/fifth.xml#1 - opened for 
  edit
  error: patch failed: sub/folder/structure/first.xml:1
  error: sub/folder/structure/first.xml: patch does not apply
  error: patch failed: sub/folder/structure/second.xml:1
  error: sub/folder/structure/second.xml: patch does not apply
  error: patch failed: sub/folder/structure/third.xml:1
  error: sub/folder/structure/third.xml: patch does not apply
  error: patch failed: sub/folder/structure/forth.xml:1
  error: sub/folder/structure/forth.xml: patch does not apply
  error: patch failed: sub/folder/structure/fifth.xml:1
  error: sub/folder/structure/fifth.xml: patch does not apply
  Unfortunately applying the change failed!
  //depot/perforce/workspace/sub/folder/structure/first.xml#1 - was edit, 
  reverted
  //depot/perforce/workspace/sub/folder/structure/second.xml#3 - was
  edit, reverted
  

Re: git p4 submit failing

2013-04-18 Thread Pete Wyckoff
christopher.yee...@gmail.com wrote on Thu, 18 Apr 2013 11:24 -0500:
 The issue is caused by the line endings. I retested the problem with a
 different file and in this case, the error is caused by the line
 endings of the file checked out in the perforce workspace being
 win-style crlf, and the line endings of the file in the git repo being
 unix style lf. (In this scenario, I took out the .gitattributes,
 core.autocrlf was set to false and LineEnd was set to share)
 
 In this case, I checked out the file in perforce, ran dos2unix against
 it, and submitted that, then ran git p4 submit and it worked.
 
 I noticed that the error is caused by the git apply failing in the def
 applyCommit(self, id) function at lines 1296-1305.
 
 diffcmd = git format-patch -k --stdout \%s^\..\%s\ % (id, id)
 patchcmd = diffcmd +  | git apply 
 tryPatchCmd = patchcmd + --check -
 applyPatchCmd = patchcmd + --check --apply -
 patch_succeeded = True
 
 if os.system(tryPatchCmd) != 0:
 fixed_rcs_keywords = False
 patch_succeeded = False
 print Unfortunately applying the change failed!
 
 So most likely in git apply command, it can't find the changes because
 of the line endings being different between them. I couldn't find a
 parameter that would magically make it work. When I added --verbose to
 git apply the output only says:
 error: while searching for:
 and then the first lines of the first diff

That seems like exactly the correct diagnosis of the problem.
What to do about it, I'm not so sure.

We could suggest that people use the same line-ending conventions
in both git and p4 land.  This is easy if they are both lf.  But,
if crlf is preferred, do you know how to configure git to use
crlf line endings?  Does that fix it?  There's also the config
setting apply.ignorewhitespace; not sure if that would allow
the apply step to apply an lf-ending patch to the crlf-ending p4
workspace.

-- Pete

 Hello Simon,
 
 I have CCed you to alert you to the possible bug. Any assistance would
 be appreciated.
 
 
 On Sat, Apr 13, 2013 at 5:09 PM, Christopher Yee Mon
 christopher.yee...@gmail.com wrote:
  Yes this is the case.
 
  Many of the files have crlf endings.
 
  core.autocrlf was recently set to input. I can't remember the timeline
  exactly though, but in addition to this, I have a .gitattributes file
  with the default set to text=auto (* text=auto) and the php files set
  to text eol=lf (*.php text eol=lf) Also my perforce workspace's
  LineEnd setting is set to Share.
 
  I've experienced the behavior in both .php and .xml files though
 
  Before all of this started I had core.autocrlf set to false, and no
  .gitattributes file and perforce workspace's LineEnd was set to the
  default, but I got a conflict where the only difference was the line
  endings, so I changed things to the way they are now.
 
  Any recommendations? Should I change everything back the way it was?
 
  On Sat, Apr 13, 2013 at 5:51 PM, Pete Wyckoff p...@padd.com wrote:
  l...@diamand.org wrote on Thu, 11 Apr 2013 21:19 +0100:
  Just a thought, but check the files that are failing to see if they've
  got RCS keywords in them ($Id$, $File$, $Date$, etc). These cause all
  sorts of nasty problems.
 
  That's assuming it's definitely not a CRLF line ending problem on Windows.
 
  I had recently debugged a similar-looking problem
  where core.autocrlf was set to input.
 
  Christopher, if you have this set and/or the .xml files
  have ^M (CRLF) line endings, please let us know.
 
  -- Pete
 
 
  On Thu, Apr 11, 2013 at 8:01 PM, Christopher Yee Mon
  christopher.yee...@gmail.com wrote:
   I tried running git p4 submit on a repo that I've been running as an
   interim bridge between git and perforce. Multiple people are using the
   repo as a remote and its being periodically submitted back to
   perforce.
  
   It's been working mostly fine. Then one day out of the blue I get this
   error. I can no longer push any git commits to perforce. (This is from
   the remote repo which I am pushing back to perforce)
  
   user@hostname:~/Source/code$ git p4 submit -M --export-labels
   Perforce checkout for depot path //depot/perforce/workspace/ located
   at /home/user/Source/git-p4-area/perforce/workspace/
   Synchronizing p4 checkout...
   ... - file(s) up-to-date.
   Applying ffa390f comments in config xml files
   //depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened 
   for edit
   //depot/perforce/workspace/sub/folder/structure/second.xml#3 - opened 
   for edit
   //depot/perforce/workspace/sub/folder/structure/third.xml#3 - opened 
   for edit
   //depot/perforce/workspace/sub/folder/structure/forth.xml#3 - opened 
   for edit
   //depot/perforce/workspace/sub/folder/structure/fifth.xml#1 - opened 
   for edit
   error: patch failed: sub/folder/structure/first.xml:1
   error: sub/folder/structure/first.xml: patch does not apply
   

Re: git p4 submit failing

2013-04-13 Thread Pete Wyckoff
l...@diamand.org wrote on Thu, 11 Apr 2013 21:19 +0100:
 Just a thought, but check the files that are failing to see if they've
 got RCS keywords in them ($Id$, $File$, $Date$, etc). These cause all
 sorts of nasty problems.
 
 That's assuming it's definitely not a CRLF line ending problem on Windows.

I had recently debugged a similar-looking problem
where core.autocrlf was set to input.

Christopher, if you have this set and/or the .xml files
have ^M (CRLF) line endings, please let us know.

-- Pete

 
 On Thu, Apr 11, 2013 at 8:01 PM, Christopher Yee Mon
 christopher.yee...@gmail.com wrote:
  I tried running git p4 submit on a repo that I've been running as an
  interim bridge between git and perforce. Multiple people are using the
  repo as a remote and its being periodically submitted back to
  perforce.
 
  It's been working mostly fine. Then one day out of the blue I get this
  error. I can no longer push any git commits to perforce. (This is from
  the remote repo which I am pushing back to perforce)
 
  user@hostname:~/Source/code$ git p4 submit -M --export-labels
  Perforce checkout for depot path //depot/perforce/workspace/ located
  at /home/user/Source/git-p4-area/perforce/workspace/
  Synchronizing p4 checkout...
  ... - file(s) up-to-date.
  Applying ffa390f comments in config xml files
  //depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/second.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/third.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/forth.xml#3 - opened for 
  edit
  //depot/perforce/workspace/sub/folder/structure/fifth.xml#1 - opened for 
  edit
  error: patch failed: sub/folder/structure/first.xml:1
  error: sub/folder/structure/first.xml: patch does not apply
  error: patch failed: sub/folder/structure/second.xml:1
  error: sub/folder/structure/second.xml: patch does not apply
  error: patch failed: sub/folder/structure/third.xml:1
  error: sub/folder/structure/third.xml: patch does not apply
  error: patch failed: sub/folder/structure/forth.xml:1
  error: sub/folder/structure/forth.xml: patch does not apply
  error: patch failed: sub/folder/structure/fifth.xml:1
  error: sub/folder/structure/fifth.xml: patch does not apply
  Unfortunately applying the change failed!
  //depot/perforce/workspace/sub/folder/structure/first.xml#1 - was edit, 
  reverted
  //depot/perforce/workspace/sub/folder/structure/second.xml#3 - was
  edit, reverted
  //depot/perforce/workspace/sub/folder/structure/third.xml#3 - was edit, 
  reverted
  //depot/perforce/workspace/sub/folder/structure/forth.xml#3 - was edit, 
  reverted
  //depot/perforce/workspace/sub/folder/structure/fifth.xml#3 - was edit, 
  reverted
  No commits applied.
 
  I thought it could be the .gitattributes setting that I had which was
  this at the time was this:
 
  * text eol=lf
 
  My global core.autocrlf setting was also false.
 
  So I remade a new remote repo, and changed core.autocrlf to input and
  changed .gitattributes to this
 
  * text=auto
 
  *.php text eol=lf
  *.pl text eol=lf
  *.pm text eol=lf
  *.sh text eol=lf
 
  *.vbs text eol=crlf
  *.bat text eol=crlf
  *.ps1 text eol=crlf
 
  *.bdb binary
  *.mtr binary
 
  Then I started to realize that it could just be the files in the
  initial commit that are suspect, because when i made edits to other
  files in the repo then tried to push them back with git p4 submit,
  those files submitted successfully  But the files in the commit where
  I initially got the failure still give me this problem.
 
  Here's what it looks like when I retested with a fresh git repo cloned
  from perforce with git p4 clone and tried to do the git p4 submit with
  verbose turned on on only one of the suspecting files
 
  user@hostname:/code$ git p4 submit -M --export-labels --verbose
  Reading pipe: git name-rev HEAD
  Reading pipe: ['git', 'config', 'git-p4.allowSubmit']
  Reading pipe: git rev-parse --symbolic --remotes
  Reading pipe: git rev-parse p4/master
  Reading pipe: git cat-file commit 0457c7589ea679dcc0c9114b34f8f30bc2ee08cf
  Reading pipe: git cat-file commit HEAD~0
  Reading pipe: git cat-file commit HEAD~1
  Reading pipe: ['git', 'config', 'git-p4.conflict']
  Origin branch is remotes/p4/master
  Reading pipe: ['git', 'config', '--bool', 'git-p4.useclientspec']
  Opening pipe: ['p4', '-G', 'where', '//depot/perforce/workspace/...']
  Perforce checkout for depot path //depot/perforce/workspace/ located
  at /home/user/Source/git-p4-area/perforce/workspace/
  Synchronizing p4 checkout...
  ... - file(s) up-to-date.
  Opening pipe: p4 -G opened ...
  Reading pipe: ['git', 'rev-list', '--no-merges', 
  'remotes/p4/master..master']
  Reading pipe: ['git', 'config', '--bool', 'git-p4.skipUserNameCheck']
  Reading pipe: ['git', 'config', 'git-p4.detectCopies']
  Reading pipe: ['git', 'config', '--bool', 

git p4 submit failing

2013-04-11 Thread Christopher Yee Mon
I tried running git p4 submit on a repo that I've been running as an
interim bridge between git and perforce. Multiple people are using the
repo as a remote and its being periodically submitted back to
perforce.

It's been working mostly fine. Then one day out of the blue I get this
error. I can no longer push any git commits to perforce. (This is from
the remote repo which I am pushing back to perforce)

user@hostname:~/Source/code$ git p4 submit -M --export-labels
Perforce checkout for depot path //depot/perforce/workspace/ located
at /home/user/Source/git-p4-area/perforce/workspace/
Synchronizing p4 checkout...
... - file(s) up-to-date.
Applying ffa390f comments in config xml files
//depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/second.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/third.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/forth.xml#3 - opened for edit
//depot/perforce/workspace/sub/folder/structure/fifth.xml#1 - opened for edit
error: patch failed: sub/folder/structure/first.xml:1
error: sub/folder/structure/first.xml: patch does not apply
error: patch failed: sub/folder/structure/second.xml:1
error: sub/folder/structure/second.xml: patch does not apply
error: patch failed: sub/folder/structure/third.xml:1
error: sub/folder/structure/third.xml: patch does not apply
error: patch failed: sub/folder/structure/forth.xml:1
error: sub/folder/structure/forth.xml: patch does not apply
error: patch failed: sub/folder/structure/fifth.xml:1
error: sub/folder/structure/fifth.xml: patch does not apply
Unfortunately applying the change failed!
//depot/perforce/workspace/sub/folder/structure/first.xml#1 - was edit, reverted
//depot/perforce/workspace/sub/folder/structure/second.xml#3 - was
edit, reverted
//depot/perforce/workspace/sub/folder/structure/third.xml#3 - was edit, reverted
//depot/perforce/workspace/sub/folder/structure/forth.xml#3 - was edit, reverted
//depot/perforce/workspace/sub/folder/structure/fifth.xml#3 - was edit, reverted
No commits applied.

I thought it could be the .gitattributes setting that I had which was
this at the time was this:

* text eol=lf

My global core.autocrlf setting was also false.

So I remade a new remote repo, and changed core.autocrlf to input and
changed .gitattributes to this

* text=auto

*.php text eol=lf
*.pl text eol=lf
*.pm text eol=lf
*.sh text eol=lf

*.vbs text eol=crlf
*.bat text eol=crlf
*.ps1 text eol=crlf

*.bdb binary
*.mtr binary

Then I started to realize that it could just be the files in the
initial commit that are suspect, because when i made edits to other
files in the repo then tried to push them back with git p4 submit,
those files submitted successfully  But the files in the commit where
I initially got the failure still give me this problem.

Here's what it looks like when I retested with a fresh git repo cloned
from perforce with git p4 clone and tried to do the git p4 submit with
verbose turned on on only one of the suspecting files

user@hostname:/code$ git p4 submit -M --export-labels --verbose
Reading pipe: git name-rev HEAD
Reading pipe: ['git', 'config', 'git-p4.allowSubmit']
Reading pipe: git rev-parse --symbolic --remotes
Reading pipe: git rev-parse p4/master
Reading pipe: git cat-file commit 0457c7589ea679dcc0c9114b34f8f30bc2ee08cf
Reading pipe: git cat-file commit HEAD~0
Reading pipe: git cat-file commit HEAD~1
Reading pipe: ['git', 'config', 'git-p4.conflict']
Origin branch is remotes/p4/master
Reading pipe: ['git', 'config', '--bool', 'git-p4.useclientspec']
Opening pipe: ['p4', '-G', 'where', '//depot/perforce/workspace/...']
Perforce checkout for depot path //depot/perforce/workspace/ located
at /home/user/Source/git-p4-area/perforce/workspace/
Synchronizing p4 checkout...
... - file(s) up-to-date.
Opening pipe: p4 -G opened ...
Reading pipe: ['git', 'rev-list', '--no-merges', 'remotes/p4/master..master']
Reading pipe: ['git', 'config', '--bool', 'git-p4.skipUserNameCheck']
Reading pipe: ['git', 'config', 'git-p4.detectCopies']
Reading pipe: ['git', 'config', '--bool', 'git-p4.detectCopiesHarder']
Reading pipe: ['git', 'show', '-s', '--format=format:%h %s',
'ef3b95f5fec193fe2612b28e2e3b5e7f8ba9419e']
Applying ef3b95f making test change
Opening pipe: p4 -G users
Reading pipe: ['git', 'log', '--max-count=1', '--format=%ae',
'ef3b95f5fec193fe2612b28e2e3b5e7f8ba9419e']
Reading pipe: git diff-tree -r -M
ef3b95f5fec193fe2612b28e2e3b5e7f8ba9419e^
ef3b95f5fec193fe2612b28e2e3b5e7f8ba9419e
//depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened for edit
stdin:17: trailing whitespace.
!-- comment line 1 --
stdin:18: trailing whitespace.
!-- comment line 2 --
stdin:19: trailing whitespace.
!-- comment line 3 --
error: patch failed: sub/folder/structure/first.xml:1
error: sub/folder/structure/first.xml: patch does not apply
Unfortunately applying the change failed!
Reading pipe: ['git', 'config', 

Re: git p4 submit failing

2013-04-11 Thread Luke Diamand
Just a thought, but check the files that are failing to see if they've
got RCS keywords in them ($Id$, $File$, $Date$, etc). These cause all
sorts of nasty problems.

That's assuming it's definitely not a CRLF line ending problem on Windows.

On Thu, Apr 11, 2013 at 8:01 PM, Christopher Yee Mon
christopher.yee...@gmail.com wrote:
 I tried running git p4 submit on a repo that I've been running as an
 interim bridge between git and perforce. Multiple people are using the
 repo as a remote and its being periodically submitted back to
 perforce.

 It's been working mostly fine. Then one day out of the blue I get this
 error. I can no longer push any git commits to perforce. (This is from
 the remote repo which I am pushing back to perforce)

 user@hostname:~/Source/code$ git p4 submit -M --export-labels
 Perforce checkout for depot path //depot/perforce/workspace/ located
 at /home/user/Source/git-p4-area/perforce/workspace/
 Synchronizing p4 checkout...
 ... - file(s) up-to-date.
 Applying ffa390f comments in config xml files
 //depot/perforce/workspace/sub/folder/structure/first.xml#3 - opened for edit
 //depot/perforce/workspace/sub/folder/structure/second.xml#3 - opened for edit
 //depot/perforce/workspace/sub/folder/structure/third.xml#3 - opened for edit
 //depot/perforce/workspace/sub/folder/structure/forth.xml#3 - opened for edit
 //depot/perforce/workspace/sub/folder/structure/fifth.xml#1 - opened for edit
 error: patch failed: sub/folder/structure/first.xml:1
 error: sub/folder/structure/first.xml: patch does not apply
 error: patch failed: sub/folder/structure/second.xml:1
 error: sub/folder/structure/second.xml: patch does not apply
 error: patch failed: sub/folder/structure/third.xml:1
 error: sub/folder/structure/third.xml: patch does not apply
 error: patch failed: sub/folder/structure/forth.xml:1
 error: sub/folder/structure/forth.xml: patch does not apply
 error: patch failed: sub/folder/structure/fifth.xml:1
 error: sub/folder/structure/fifth.xml: patch does not apply
 Unfortunately applying the change failed!
 //depot/perforce/workspace/sub/folder/structure/first.xml#1 - was edit, 
 reverted
 //depot/perforce/workspace/sub/folder/structure/second.xml#3 - was
 edit, reverted
 //depot/perforce/workspace/sub/folder/structure/third.xml#3 - was edit, 
 reverted
 //depot/perforce/workspace/sub/folder/structure/forth.xml#3 - was edit, 
 reverted
 //depot/perforce/workspace/sub/folder/structure/fifth.xml#3 - was edit, 
 reverted
 No commits applied.

 I thought it could be the .gitattributes setting that I had which was
 this at the time was this:

 * text eol=lf

 My global core.autocrlf setting was also false.

 So I remade a new remote repo, and changed core.autocrlf to input and
 changed .gitattributes to this

 * text=auto

 *.php text eol=lf
 *.pl text eol=lf
 *.pm text eol=lf
 *.sh text eol=lf

 *.vbs text eol=crlf
 *.bat text eol=crlf
 *.ps1 text eol=crlf

 *.bdb binary
 *.mtr binary

 Then I started to realize that it could just be the files in the
 initial commit that are suspect, because when i made edits to other
 files in the repo then tried to push them back with git p4 submit,
 those files submitted successfully  But the files in the commit where
 I initially got the failure still give me this problem.

 Here's what it looks like when I retested with a fresh git repo cloned
 from perforce with git p4 clone and tried to do the git p4 submit with
 verbose turned on on only one of the suspecting files

 user@hostname:/code$ git p4 submit -M --export-labels --verbose
 Reading pipe: git name-rev HEAD
 Reading pipe: ['git', 'config', 'git-p4.allowSubmit']
 Reading pipe: git rev-parse --symbolic --remotes
 Reading pipe: git rev-parse p4/master
 Reading pipe: git cat-file commit 0457c7589ea679dcc0c9114b34f8f30bc2ee08cf
 Reading pipe: git cat-file commit HEAD~0
 Reading pipe: git cat-file commit HEAD~1
 Reading pipe: ['git', 'config', 'git-p4.conflict']
 Origin branch is remotes/p4/master
 Reading pipe: ['git', 'config', '--bool', 'git-p4.useclientspec']
 Opening pipe: ['p4', '-G', 'where', '//depot/perforce/workspace/...']
 Perforce checkout for depot path //depot/perforce/workspace/ located
 at /home/user/Source/git-p4-area/perforce/workspace/
 Synchronizing p4 checkout...
 ... - file(s) up-to-date.
 Opening pipe: p4 -G opened ...
 Reading pipe: ['git', 'rev-list', '--no-merges', 'remotes/p4/master..master']
 Reading pipe: ['git', 'config', '--bool', 'git-p4.skipUserNameCheck']
 Reading pipe: ['git', 'config', 'git-p4.detectCopies']
 Reading pipe: ['git', 'config', '--bool', 'git-p4.detectCopiesHarder']
 Reading pipe: ['git', 'show', '-s', '--format=format:%h %s',
 'ef3b95f5fec193fe2612b28e2e3b5e7f8ba9419e']
 Applying ef3b95f making test change
 Opening pipe: p4 -G users
 Reading pipe: ['git', 'log', '--max-count=1', '--format=%ae',
 'ef3b95f5fec193fe2612b28e2e3b5e7f8ba9419e']
 Reading pipe: git diff-tree -r -M
 ef3b95f5fec193fe2612b28e2e3b5e7f8ba9419e^