git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git-svn and auto crlf convertion.
@ 2007-10-31  4:49 Alexander Litvinov
  2007-10-31  6:30 ` Eric Wong
  0 siblings, 1 reply; 2+ messages in thread
From: Alexander Litvinov @ 2007-10-31  4:49 UTC (permalink / raw)
  To: git

Hello.

I have private svn repo with cpp source file in windows encoding (\r\n line 
ending). I am tring to import it into git using git-svn. To make correct crlf 
convertion I have made git svn init first then create 
correct .git/info/attributes file and import repo using git svn fetch 
command. But after import done I have strange situation: after git 
checkout -f master git status show that almost all text files are modified.

As I understand situation git-svn put \r\n encoded files into repo without 
convertng them to \n notation. git-checkout,git-status does the job right and 
found 'modification' as far as they do the needed convertion.

Is there any way to configure git-svn to make proper convertion or it is 
broken and need to be fixed ?

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: git-svn and auto crlf convertion.
  2007-10-31  4:49 git-svn and auto crlf convertion Alexander Litvinov
@ 2007-10-31  6:30 ` Eric Wong
  0 siblings, 0 replies; 2+ messages in thread
From: Eric Wong @ 2007-10-31  6:30 UTC (permalink / raw)
  To: Alexander Litvinov; +Cc: git

Alexander Litvinov <litvinov2004@gmail.com> wrote:
> Hello.
> 
> I have private svn repo with cpp source file in windows encoding (\r\n line 
> ending). I am tring to import it into git using git-svn. To make correct crlf 
> convertion I have made git svn init first then create 
> correct .git/info/attributes file and import repo using git svn fetch 
> command. But after import done I have strange situation: after git 
> checkout -f master git status show that almost all text files are modified.
> 
> As I understand situation git-svn put \r\n encoded files into repo without 
> convertng them to \n notation. git-checkout,git-status does the job right and 
> found 'modification' as far as they do the needed convertion.

Disclaimer: I'm not yet familiar with git attributes, having never used them.

> Is there any way to configure git-svn to make proper convertion or it is 
> broken and need to be fixed ?

As far as I can tell, SVN itself will store files with either LF or CRLF
in the repository when the file is created/updated and applies the line
conversion properties only to the working tree upon checkout.  This
means that the SVN repository can have a file that's LF but only
converted to CRLF when checked out and vice-versa.

git-svn takes and imports whatever raw data SVN gives it, ignoring any
properties set in SVN.  This is very important because SVN transfers
deltas for updating files, and if we change the base file; we can't
apply the delta SVN gives us.

If we converted the newlines in the raw data that SVN gave us, we would
need to store what format the original data we got from SVN was in
because of the delta.

What I assume svn does is it either:

a) reconverts before doing `svn update' or `svn switch'
b) it ignores newline-only changes when running `svn status' or `svn diff'

git (as far as I know, and hope) does neither.

-- 
Eric Wong

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-10-31  6:30 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-31  4:49 git-svn and auto crlf convertion Alexander Litvinov
2007-10-31  6:30 ` Eric Wong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).