2012/8/16 Ed Merks <ed.me...@gmail.com> > Ed, > > I doubt this conclusion is correct. You can tell git which files > (extensions) are binary via .gitattributes > > https://help.github.com/articles/dealing-with-line-endings > > I've not had problems with binary files (images for example) getting > mangled. >
JGit doesn't support gitattributes yet, that's why EGit doesn't know the difference between ASCII and binary files. There is a pending draft [1] since a long time but it seems Marc didn't find the time to continue on that. Tasktop recently said they intend to work on this feature later this year [2]. [1] https://git.eclipse.org/r/#/c/1615/ [2] https://bugs.eclipse.org/bugs/show_bug.cgi?id=342372 > Regards, > Ed > > > > On 16/08/2012 12:32 PM, Ed Willink wrote: > > Hi > > After a quick Google it seems GIT does not normalize Windows line endings > unless autocrlf is set true, which may have other bad effects like > normalizing binary files too. > > So if we use the default autocrlf=false we are left with the bad > alternative; get all CR-LF producing tools fixed, which is difficult since > Eclipse's default line-endings on Windows are CR-LF, so CR-LF production is > correct. > > I did a quick scan of my Workspace for CR-LFs; Eclipse locked up with over > 65000 search matches. > > After a kill and restart and a search in a single project, I had two rogue > files; both manually edited Java files. It seems that once you get a CR-LF > from somewhere, JDT's indentation preservation also preserves line > termination and once there are some CR-LFs, JDT thinks you like them. > > So until EGIT acquires CVS's binary flag our only solution is to regularly > manually remove all CR-LFs that have leaked in somehow. > > Regards > > Ed Willink > > On 16/08/2012 10:44, Eike Stepper wrote: > > Am 16.08.2012 11:25, schrieb Ed Willink: > > Hi Eike > > Hi > > My suspicion is that the problem is in the comparison tooling. > > The files in the repo seem to be normalized to LF line endings, but some > Windows tooling creates CR-LF; some tools can > be fixed via Bugzillas but it's a losing battle. > > > I totally disagree. All these tools have been working fine with all other > version control systems. > > We agree. I was just elaborating the bad alternative. > > > Good ;-) > > And the false positives in the staging view appear with no comparison > tool being involved. And it's impossible to get > rid of them by means of the tool (EGit) that has created them. > > There is a comparison. EGIT must do a file compare to determine whether > the file is changed. If you edit a file and edit > it back again, the file disappears from the staging view, so EGIT must be > using content rather than timestamp to detect > changes. > > actually it's using both as also c git does, jgit tries to use meta data as much as possible since lstat is a lot faster than computing SHA1 of the content. Though In some cases it has to do that in order to provide correct results > Oh, of course I know that. I *guess* it's done with the SHA1 digests of > the files' contents because they're needed anyway. > > I'll try to implement what Gunnar suggested in [3] in order to improve EGit's line break handling. Though full handling of autocrlf requires jgit support for gitattributes. [3] https://bugs.eclipse.org/bugs/show_bug.cgi?id=361503#c9 -- Matthias
_______________________________________________ cross-project-issues-dev mailing list cross-project-issues-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev