java - Windows & Merkurelle forandringssager af klassenavne

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har arvet et Java-projekt, som omfatter en række klasser, der ikke er navngivet i henhold til UpperCamelCase navngivningskonventionen.


Dette er især tilfældet med forkortelser (for eksempel HTMLButton i stedet for HtmlButton). Selvom jeg ved, at der er nogle meningsforskelle om brugen af ​​CamelCase med forkortelser, vil vi gerne skifte til kun ved hjælp af et stort bogstav for forkortelsens første bogstav. (I øjeblikket synes der at være flere samtidige navngivningskonventioner.)


Jeg vil gerne rydde op. Vi bruger Mercurial som vores kildekodelager og arbejder på Windows-maskiner (herunder XP, Vista, 7). Men hvis jeg ændrer et klassenavn fra HTMLButton til HtmlButton, genkender Mercurial dette som en navneændring, men ikke som en filnavnskifte. (Og efterfølgende trækker eventuelle træk fra Mercurial ikke filnavnet.)


Jeg ved, at Windows arbejder på et case-insenstive filsystem, og jeg forstår, at Mercurial opfanger denne funktion, når man accepterer skubber fra en Windows-boks ...


Så...:
- Er der en indstilling, jeg kan ændre for at få Mercurial til at bruge case-sensitive filnavne?
- Er der en indstilling, jeg kan ændre for at få Windows til at bruge case-sensitive filnavne?
(Disse er separate spørgsmål. Min prioritet er at få Mercurial til at acceptere filnavn ændringer, hvis det er nødvendigt, kan vi manuelt tvinge filnavne i vores IDE. En straight-through løsning ville helst være foretrukket!)


(Hvis alt andet fejler, kan jeg prøve at omdøbe HTMLButton til HtmlButtonA, forpligte og skubbe og omdøbe HtmlButtonA til HtmlButton og gøre en anden commit og push ... Men jeg er ikke sikker på, hvilken indflydelse dette ville have på Windows filnavne, hvis en anden tog kun et træk efter det andet skub ...)

Bedste reference


Hvis du gør:


hg rename foo bar
hg rename bar Foo


Du behøver ikke at forpligte og skubbe til slutningen. Med andre ord vil dit lager ikke blive opmærksom på denne Windows-specifikke løsning.


En anden mulighed er at omdøbe filen i Windows, og derefter påberåbe:


hg rename foo Foo --after


at underrette Mercurial om ændringen.


Kilde: http://hgbook.red-bean.com/read/mercurial-in-daily-use.html#id364064[3]