git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: problem with BOINC repository and CR/LF

From
Torsten Bögershausen <tboegi@web.de>
Date
Dec 18, 2012, 12:15 UTC
Message-ID
<50D05E62.7090605@web.de>
In-Reply-To
<50D03D80.3090005@gmx.de>
On 18.12.12 10:55, Toralf Förster wrote:
Show 172 quoted lines
> On 12/18/2012 02:56 AM, Andrew Ardill wrote:
>> On 18 December 2012 03:01, Toralf Förster <toralf.foerster@gmx.de> wrote:
>>> On 12/17/2012 12:38 PM, Andrew Ardill wrote:
>>>> On 17 December 2012 21:23, Toralf Förster <toralf.foerster@gmx.de> wrote:
>>>>> Hello,
>>>>>
>>>>> I'm faced with this situation :
>>>>> http://lists.ssl.berkeley.edu/mailman/private/boinc_alpha/2012-December/017371.html
>>>>> and even a "git stash" doesn't help.
>>>>
>>>> Hi Toralf,
>>>>
>>>> That list is private and not visible without an account. Can you
>>>> transcribe the relevant parts?
>>>>
>>>> Regards,
>>>>
>>>> Andrew Ardill
>>>>
>>> Oh of course :
>>>
>>>
>>> On 12/17/2012 12:03 AM, Gianfranco Costamagna wrote:
>>>> So if you have further issues with boinc feel free to look in our debian
>>>> git and feel free to download appropriate patches :-)
>>>>
>>>> Gianfranco
>>> thx
>>>
>>> Currently I'm struggling with a git problem of the boinc repository
>>> itself and b/c I'm using git for the linux kernel tree w/o any problems
>>> since eons /me wonders whether this is a BOINC-repository specific problem :
>>>
>>>
>>> After doing the following sequence with git 1.8.0.2 :
>>>
>>> $> git clone git://boinc.berkeley.edu/boinc.git
>>> $> cd boinc
>>> $> git checkout client_release_7.0.39
>>> $> git checkout master
>>> (sometimes I've to repeat this :
>>>         $> git checkout client_release_7.0.39
>>>         $> git checkout master
>>> )
>>> I'm faced with this situation :
>>>
>>> $ git status
>>> # On branch master
>>> # Changes not staged for commit:
>>> #   (use "git add <file>..." to update what will be committed)
>>> #   (use "git checkout -- <file>..." to discard changes in working
>>> directory)
>>> #
>>> #       modified:   clientgui/AsyncRPC.cpp
>>> #       modified:   clientgui/sg_BoincSimpleFrame.cpp
>>> #
>>> no changes added to commit (use "git add" and/or "git commit -a")
>>>
>>> (sometimes only clientgui/sg_BoincSimpleFrame.cpp is mentioned)
>>>
>>> Now these commands
>>>
>>> $ git checkout -- clientgui/AsyncRPC.cpp
>>> $ git checkout -- clientgui/sg_BoincSimpleFrame.cpp
>>>
>>> doesn't help - the status is still the same (and ofc now I'm no longer
>>> allowed to make a "git checkout" - due to un-commited changes).
>>>
>>> Now I'm wondering where to start to investigate this issue ...
>>
>> Hi Toralf,
>>
>> That does look like a weird issue. What operating system are you on?
> 
> I'm running a stable Gentoo Linux x86, 32bit with gcc 4.6.3 and current
> stable kernel 3.6.1x and 3.7.1, file system is ext4 at an external USB
> 2.0 drive.
> 
> FWIW from the boinc maintainer I know that all tags till 7.0.3X are
> imported from svn.
> 
> I upgraded to git 1.8.0.2 from 1.7.8.6 - situation is the same. The
> emerge gave :
> 
> failed test(s): t3600 t7508
> 
> fixed   0
> success 8342
> failed  8
> broken  56
> total   8528
> 
> Ok, now answering your other questions:
> 
> 
> $> git stash
> warning: CRLF will be replaced by LF in clientgui/AsyncRPC.cpp.
> The file will have its original line endings in your working directory.
> warning: CRLF will be replaced by LF in clientgui/sg_BoincSimpleFrame.cpp.
> The file will have its original line endings in your working directory.
> warning: CRLF will be replaced by LF in clientgui/AsyncRPC.cpp.
> The file will have its original line endings in your working directory.
> warning: CRLF will be replaced by LF in clientgui/sg_BoincSimpleFrame.cpp.
> The file will have its original line endings in your working directory.
> Saved working directory and index state WIP on master: 4a296dc - client
> simulator: fix build errors
> HEAD is now at 4a296dc - client simulator: fix build errors
> 
> After that the situation is unchanged.
> 
>> What happens if you do a hard reset to the branch?
> 
> $> git reset --hard HEAD~1
> 
> not better.
> 
> 
>> What is the ouptut of git diff --cached ?
> 
> The output is empty but "git status" shows still modified files.
> 
> 
> 
> FWIW there's a related issue I'm wondering about which might help:
> 
> $> git clone git://boinc.berkeley.edu/boinc.git
> $> tar -cpf boinc.tar boinc/
> $> rm -rf boinc/
> $> tar -xpf boinc.tar
> $> cd boinc/
> $> git status
> # On branch master
> # Changes not staged for commit:
> #   (use "git add <file>..." to update what will be committed)
> #   (use "git checkout -- <file>..." to discard changes in working
> directory)
> #
> #       modified:   client/win/boinc_log.h
> #       modified:   client/win/boinc_log.rc
> #       modified:   clientctrl/boincsvcctrl.cpp
> #       modified:   clientctrl/boincsvcctrl.h
> #       modified:   clientctrl/boincsvcctrl.rc
> #       modified:   clientgui/AsyncRPC.cpp
> #       modified:   clientgui/DlgEventLog.cpp
> #       modified:   clientgui/DlgEventLog.h
> #       modified:   clientgui/DlgEventLogListCtrl.cpp
> #       modified:   clientgui/DlgEventLogListCtrl.h
> #       modified:   clientgui/DlgExitMessage.h
> #       modified:   clientgui/DlgItemProperties.h
> #       modified:   clientgui/TermsOfUsePage.cpp
> #       modified:   clientgui/TermsOfUsePage.h
> #       modified:   clientgui/ViewNotices.cpp
> #       modified:   clientgui/ViewNotices.h
> #       modified:   clientgui/sg_BoincSimpleFrame.cpp
> #       modified:   clientscr/boinc_ss_opengl.h
> #       modified:   clientscr/boinc_ss_opengl.rc
> #       modified:   clientscr/screensaver.cpp
> #       modified:   clienttray/boinc_tray.h
> #       modified:   clienttray/boinc_tray.rc
> #       modified:   clienttray/tray_win.cpp
> #       modified:   clienttray/tray_win.h
> #       modified:   coprocs/NVIDIA/include/nvapi.h
> #
> no changes added to commit (use "git add" and/or "git commit -a")
> $> git diff --cached
> $>
> 
> 
> 
> Meaning, w/o any other interaction a tar'ed archive has modified files -
> and the diff is empty...
> 
Hej,

I could re-produce the problem here: git version 1.8.0.197.g5a90748 Mac OS X (that what I had at hands fastest)

After doing git checkout 5db4a05b5c8f9c420fc418727cafbb58e6051f1e (same as master ?) We see that clientgui/AsyncRPC.cpp is full of CRLF and as it seems only CRLF, no single LF.

The file is classified as text: $git check-attr text clientgui/AsyncRPC.cpp $clientgui/AsyncRPC.cpp: text: set (And we can see this in .gitattributes as well)

(And there are more files affected, but I will only look at one of them)

If we remove the text attribute like this: $mv .gitattributes .gitattributes.sav we see

$git status deleted: .gitattributes # modified: clientgui/sg_BoincSimpleFrame.cpp

If we dig into the file: $git ls-files -s clientgui/AsyncRPC.cpp 100644 6832333ad133181986ada54fe0229b45a30c614a 0 clientgui/AsyncRPC.cpp

We see that it is recorded under 6832333ad1 And if we look into it: $git show 6832333 | od -c [snip] we can see that the file has CRLF in the repo.

So my conclusion is: The file has CRLF in the repo, but should have LF. This is not a good thing, and the files need to be normalized.

A very good instruction how to do this, is found here: http://kernel.org/pub/software/scm/git/docs/gitattributes.html (You may want to search for "End-of-line conversion" or "core.autocrlf")

HTH /Torsten

 
Previous: Toralf FörsterNext: Jeff King
Message 7 of 13 in “problem with BOINC repository and CR/LF”
  1. Toralf FörsterDec 17, 2012
  2. Andrew ArdillDec 17, 2012
  3. Toralf FörsterDec 17, 2012
  4. Andrew ArdillDec 18, 2012
  5. Toralf FörsterDec 18, 2012
  6. Toralf FörsterDec 18, 2012
  7. Torsten BögershausenDec 18, 2012
  8. Jeff KingDec 18, 2012
  9. Toralf FörsterDec 19, 2012
  10. Toralf FörsterDec 22, 2012
  11. Dmitry PotapovDec 22, 2012
  12. Junio C HamanoDec 22, 2012
  13. Toralf FörsterDec 19, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.