Wireshark-dev: Re: [Wireshark-dev] Git and line endings
From: Bálint Réczey <balint@xxxxxxxxxxxxxxx>
Date: Tue, 4 Feb 2014 15:20:51 +0100
Hi, 2014-02-04 Pascal Quantin <pascal.quantin@xxxxxxxxx>: > 2014-02-04 Bálint Réczey <balint@xxxxxxxxxxxxxxx>: > >> Hi, >> >> >> 2014-02-04 Pascal Quantin <pascal.quantin@xxxxxxxxx>: >> > >> > >> > >> > 2014-02-04 Graham Bloice <graham.bloice@xxxxxxxxxxxxx>: >> >> >> >> On 4 February 2014 11:18, Pascal Quantin <pascal.quantin@xxxxxxxxx> >> >> wrote: >> >>> >> >>> 2014-02-04 Graham Bloice <graham.bloice@xxxxxxxxxxxxx>: >> >>> >> >>>> >> >>>> On 3 February 2014 22:50, Pascal Quantin <pascal.quantin@xxxxxxxxx> >> >>>> wrote: >> >>>>> >> >>>>> Hi all, >> >>>>> >> >>>>> with subversion we were using the native eol-style property. Now >> >>>>> that >> >>>>> we moved to git, would it make sense to commit a .gitattributes file >> >>>>> with >> >>>>> text=auto to avoid any issue between Linux and Windows development >> >>>>> boxes? >> >>>>> I faced tonight an issue with asn2wrs.py that generated the ASN.1 >> >>>>> dissector with CRLF line endings on my Windows machine (due to the >> >>>>> use of >> >>>>> Python open() function) while my checkout had LF line endings, >> >>>>> leading to >> >>>>> completely different files from git point of view. >> >>>>> >> >>>> >> >>>> There seems to be a lot of confusion around this aspect, possibly >> >>>> because Windows is usually a second class citizen in the git world. >> >>>> >> >>>> Some other useful links: >> >>>> >> >>>> >> >>>> http://stackoverflow.com/questions/170961/whats-the-best-crlf-handling-strategy-with-git >> >>>> https://help.github.com/articles/dealing-with-line-endings >> >>>> http://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line >> >>>> >> >>>> Even when the .gitattributes is correctly set it seems that someone >> >>>> will >> >>>> have to re-normalise the repo (as in the GitHub article). >> >>> >> >>> >> >>> Yes, I played a bit with .gitattributes after sending my email and >> >>> could >> >>> easily shoot me in the foot... >> >>> I guess we cannot (should not) expect to have all Windows contributors >> >>> to >> >>> set the core.autocrlf=true setting before cloning Wireshark. >> >>> Still I do not see any easy solution: >> >>> - do one big commit introducing .gitattributes and re-normalising the >> >>> repo, OR >> >>> - put a big fat warning somewhere (in the documentation ?) stating >> >>> that >> >>> Windows users should set core.autocrlf=true before cloning, OR >> >>> - modify all scripts like asn2wrs.py so that they are less smart and >> >>> ouput LF line endings (assuming it is possible) and expect peaople >> >>> that they >> >>> did not activate autocrlf (sigh...) >> >>> >> >>> Only first option seems good to me (maybe there is a 4th option that I >> >>> missed?). >> >>> I just did a dry run and following the re-normalize procedure >> >>> described >> >>> on github only wireshark.sln file is impacted so it is not a massive >> >>> commit. >> >>> If there is a consensus I will do the change. >> >>> >> >>> >> >> >> >> I know others differ, but IMHO the wireshark.sln file could be deleted >> >> anyway. If the re-normalisation isn't too bad then go for that. >> > >> > +1 >> >> >> >> >> >> I'm a bit confused by the asn2wrs issues though. If they produce the >> >> platform specific line endings for their output, then won't those be >> >> normalised by git on commit (if the correct settings for git are >> >> applied)? >> > >> > On Linux asn1wrs.py produces LF line endings, while on Windows it >> > produces >> > CRLF line endings. >> > Without having .gitattributes or core.autocrlf setting set to true >> > locally, >> > my working directory is having files with LF line endings but as soon as >> > I >> > want to update an ASN.1 dissector the file written is with CRLF. I have >> > to >> > manually change it back to LF... >> > On Linux, both the working copy and asn2wrs.py output have LF line >> > endings. >> > I expect that we will have similar issues with other scripts than >> > asn2wrs.py, thus my idea to do what seems to be the equivalent of the >> > subversion eol-style native property. >> > >> > Pascal. >> > >> > PS: I do not like that much playing with line ending conversion like >> > this, >> > but this is how our repository was working previously and I do not >> > master >> > all the subtleties to get rid of it >> I made a quick test and converting every file with CRLF-s to LF using >> the script at >> >> http://stackoverflow.com/questions/1510798/trying-to-fix-line-endings-with-git-filter-branch-but-having-no-luck/1511273#1511273 >> >> Yielded a diff reasonable size: >> commit 57bdccf83b9a6fc2d8db34e526d6635cd0eae207 >> Author: Balint Reczey <balint@xxxxxxxxxxxxxxx> >> Date: Tue Feb 4 14:10:41 2014 +0100 >> >> Fixed crlf issue >> >> adns_dll.dep | 170 >> +++++++++++++------------- >> adns_dll.rc | 220 >> +++++++++++++++++----------------- >> epan/dissectors/packet-isakmp.c | 2 +- >> epan/dissectors/pidl/initshutdown.cnf | 2 +- >> epan/enterprise-numbers | 6 +- >> image/expert_indicators.svg | 854 >> >> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------ >> image/filetap.rc.in | 68 +++++------ >> image/toolbar/capture_interfaces_16.svg | 82 ++++++------- >> image/toolbar/capture_interfaces_24.svg | 86 +++++++------- >> image/toolbar/capture_options_16.svg | 58 ++++----- >> image/toolbar/capture_options_24.svg | 60 +++++----- >> image/toolbar/capture_options_alt1_16.svg | 74 ++++++------ >> image/toolbar/capture_options_alt1_24.svg | 74 ++++++------ >> image/toolbar/capture_pause_16.svg | 66 +++++------ >> image/toolbar/capture_pause_24.svg | 66 +++++------ >> image/toolbar/capture_restart_16.svg | 76 ++++++------ >> image/toolbar/capture_restart_16_alt1.svg | 56 ++++----- >> image/toolbar/capture_restart_16_alt2.svg | 62 +++++----- >> image/toolbar/capture_restart_16_alt3.svg | 56 ++++----- >> image/toolbar/capture_restart_16_alt4.svg | 32 ++--- >> image/toolbar/capture_restart_24.svg | 74 ++++++------ >> image/toolbar/capture_restart_24_alt1.svg | 56 ++++----- >> image/toolbar/capture_restart_24_alt2.svg | 62 +++++----- >> image/toolbar/capture_restart_24_alt3.svg | 56 ++++----- >> image/toolbar/capture_restart_24_alt4.svg | 32 ++--- >> image/toolbar/capture_stop_16_alt1.svg | 50 ++++---- >> image/toolbar/capture_stop_24_alt1.svg | 50 ++++---- >> plugins/opcua/plugin.rc.in | 68 +++++------ >> profiles/Bluetooth/colorfilters | 2 +- >> profiles/Classic/colorfilters | 2 +- >> wireshark.sln | 350 >> +++++++++++++++++++++++++++--------------------------- >> 31 files changed, 1486 insertions(+), 1486 deletions(-) >> > Funny, with a simple .gitattributes containing only "* text=auto" and the > commands given in > https://help.github.com/articles/dealing-with-line-endings#re-normalizing-a-repository > on Windows, only wireshark.sln was modified. But with the recipe from > http://git-scm.com/docs/gitattributes I get the same result as you. OK, let's go with "* text=auto" and don't convert the files now. As Graham suggested wireshark.sln can stay CRLF, since it won't be ever used on other OS-es. >> >> >> I think we should do that and regarding the generated files we should >> simply remove them from the repo. > > This can be handled separately (if this is an issue at all): with > .gitattributes ther is no more issue as Windows clones are in CRLF mode and > Linux ones are in LF mode. I think storing generated files is an issue on its own and I agree with handling it separately. >> >> >> If some of the developers does not set line ending properly on Windows >> it cause no harm because >> those problems can be easily spotted on Gerrit possibly by automated >> scripts > > > Let cross fingers ;) +1 :) Cheers, Balint
- Follow-Ups:
- Re: [Wireshark-dev] Git and line endings
- From: Pascal Quantin
- Re: [Wireshark-dev] Git and line endings
- References:
- [Wireshark-dev] Git and line endings
- From: Pascal Quantin
- Re: [Wireshark-dev] Git and line endings
- From: Graham Bloice
- Re: [Wireshark-dev] Git and line endings
- From: Pascal Quantin
- Re: [Wireshark-dev] Git and line endings
- From: Graham Bloice
- Re: [Wireshark-dev] Git and line endings
- From: Pascal Quantin
- Re: [Wireshark-dev] Git and line endings
- From: Bálint Réczey
- Re: [Wireshark-dev] Git and line endings
- From: Pascal Quantin
- [Wireshark-dev] Git and line endings
- Prev by Date: Re: [Wireshark-dev] Git and line endings
- Next by Date: Re: [Wireshark-dev] Omnivorous Shark
- Previous by thread: Re: [Wireshark-dev] Git and line endings
- Next by thread: Re: [Wireshark-dev] Git and line endings
- Index(es):