Musiałem przenieść mój obszar roboczy Eclipse z Linuksa na Windows, gdy mój komputer się zawiesił. Tydzień później kopiuję go z powrotem do Linuksa, szczęśliwie koduję, zobowiązuję się do CVS. I niestety, nowe wiersze systemu Windows zanieczyściły wiele plików, więc CVS diff zrzuca cały plik, nawet gdy zmieniłem wiersz lub dwa!
Mogę przygotować skrypt, ale zastanawiam się, czy nie zepsuje on plików projektu Eclipse.
Odpowiedzi:
Jak wspomniano tutaj i tutaj :
Wskazówka : Możesz łatwo przekonwertować istniejący plik, wybierając go w Eksploratorze pakietów, a następnie przechodząc do pozycji menu
File : Convert Line Delimiters to : Unix
źródło
File : Convert Line Delimiters to : Unix
polecenia, aby „naprawić” wszystkie pliki w projekcie na raz.Miałem te same, zanieczyszczone przez zaćmienie pliki, nawet przy jednej zmianie linii. Rozwiązanie: Ustawienia git Eclipse -> Dodaj wpis: Klucz: core.autocrlf Wartości: true
źródło
Istnieje przydatne narzędzie bash -
dos2unix
- które jest konwerterem formatu plików tekstowych DOS / MAC na UNIX, który, jeśli nie jest jeszcze zainstalowany na twojej dystrybucji, powinien być łatwy do zainstalowania za pomocą menedżera pakietów. strona podręcznika dos2unixźródło
Oprócz rozwiązań Eclipse i narzędzia wymienionego w innej odpowiedzi , zastanów się nad flip . Może „przerzucać” w obie strony między normalnym a Windowsowym łamaniem linii i robi fajne rzeczy, takie jak zachowanie znacznika czasu pliku i innych statystyk.
Możesz użyć tego w ten sposób, aby rozwiązać problem:
(Wstawiłem klauzulę, aby zignorować twój katalog .git, na wypadek, gdybyś używał git, ale ponieważ flip domyślnie ignoruje pliki binarne, możesz tego nie potrzebować.)
źródło
find
nie działa w ten sposób.Możesz spróbować. Problem polega na tym, że po wstawieniu nowego wiersza system Windows wstawia znak powrotu karetki oraz znak wiersza. Systemy uniksowe po prostu wstawiają linię. Tak więc dodatkowy znak powrotu karetki może być powodem, dla którego twoje zaćmienie miesza się z nowymi liniami.
Weź jeden lub dwa pliki ze swojego projektu i przekonwertuj je. W tym celu możesz użyć Notepad ++. Wystarczy otworzyć plik, przejdź do Format-> Konwertuj na Unix (gdy używasz systemu Windows).
W systemie Linux po prostu spróbuj tego w wierszu polecenia:
źródło
sed -i 's/$`echo \\\r`//' yourfile.java
i w celu zautomatyzowania gofind . -name "*.java" -exec sed -i 's/$`echo \\\r`//' {} \;
Aby rekurencyjnie usunąć return return (
\r
) z plików CVS / * we wszystkich katalogach potomnych, uruchom następujące polecenie w powłoce unix:źródło