Path: csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Stefan Reuther Newsgroups: de.comp.os.unix.linux.misc Subject: Re: git Date: Sat, 25 Mar 2023 10:02:10 +0100 Lines: 42 Message-ID: References: <6e1qli3riz.fsf@th-dorner.de> <6esfdvtkq0.fsf@th-dorner.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: individual.net k92C24U0/mLTMzpZ89cSHwrUwLQD3cY98sDaTeV0b/du9tP7In Cancel-Lock: sha1:GOGFnuCKBQWzYr2CUzrzhqqRiM0= User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.1 Hamster/2.1.0.1538 In-Reply-To: Xref: csiph.com de.comp.os.unix.linux.misc:129700 Am 25.03.2023 um 06:09 schrieb Martin Vaeth: > Thomas Dorner wrote: >> Martin Vaeth writes: >>> Für jede einzelne Datei manuell - nein danke. Dass es mit einem >>> Skriptverhau möglich ist, wenn man *gegen* git arbeiten will, habe >>> ich ja schon geschrieben. Spass hat man dabei aber nicht, weil man >>> letztlich ein inadäquates Tool für das Problem benutzt. >> >> Das ist vermutlich (ungetestet) ein Dreizeiller ala >> >> |for f in ...; do >> | git commit --date=$(stat --format=%Y "$f") --message='...' "$f" >> |done > > Und damit hast Du Hunderte von Commits mit der selben Commit-Message > (oder bestenfalls einer trivialen Modifizierung) statt - was > natürlich wäre - ein "Initial commit". Das schafft keine Übersicht. Wenn du "ein Verzeichnis mit Dateien 1985-jetzt" importieren willst UND dabei noch aussagefähige Commit-Messages haben willst, kommst du um Handarbeit sowieso nicht drumherum. Stünde ich vor dem Problem, würde ich vermutlich 'cvs import -d' benutzen und das CVS-Repository danach mit 'git cvsimport' nach git konvertieren. Dann übernimmt 'git cvsimport' das Sortieren der Commits in die chronologisch richtige Reihenfolge. Praktisch habe ich bisher meistens einfach 'git add' gemacht und auf die Timestamps verzichtet. Timestamps sind für mich eh flüchtige Informationen, die gehen einfach kaputt, wenn man die Dateien mal über einen nicht ganz geeigneten Transportweg (falsches Packprogramm? HTTP?) transportiert. Wenn ein Zeitstempel wichtig ist, muss er im Dateiinhalt stehen. Andererseits muss man gelegentlich daran rumfummeln, um z.B. einem suboptimalen Makefile auf die Sprünge zu helfen. > Für Verzeichnisse mit Textdateien arbeitet man letztlich die > ganze Zeit *gegen* git. Also ich habe nicht das Gefühl, gegen git zu arbeiten... Stefan