Ich bin gespannt, was ist die beste Praxis, Ihre gelegentlichen Beiträge zu einem OSS-Projekt in git (z. B. auf github/bitbucket/gitlab) zu halten, während der Upstream ausschließlich CVS ist.Was ist die beste Vorgehensweise beim GIT, wenn der Upstream 100% CVS ist?
My take ist, dass es sehr bequem ist einfach CVS/{Entries,Repository,Root}
zu begehen direkt in git
, und dann jederzeit und von jedem Feld, können Sie einfach Ihre git Repo-Kasse (w/git
) und dann von der realen Upstream-Aktualisierung mit cvs up
, was genau ich mit my OpenBSD ports-readmes fork, sowie mdocml mache.
Allerdings habe ich bemerkt, dass die meisten Leute ziemlich überrascht und verwirrt sind, diese CVS-Dateien in diesen Git-Repositories auf meinem GitHub zu sehen, angeblich denkend, dass es eine Art von Versehen meinerseits ist. Außerdem hat zum Beispiel reyk's httpd keinen solchen Aufbau, obwohl er ihn anscheinend normalerweise von der stromaufwärtigen Seite in großen Mengen aktualisiert, ohne das Protokoll von der stromaufwärtigen Seite zu erhalten.
Fehle ich hier etwas? Ich habe das Gefühl, CVS/{Entries,Repository,Root}
in Ihrem Git-Repository zu haben ist eine großartige Idee, aber ich habe noch nie jemanden anderen dabei gesehen. Warum?
Ein ziemlich großes Problem beim Übertragen Ihrer CVS-Metadaten ist, dass es spezifisch für Sie und Ihre Auscheckversion ist. Die Art, wie ich es gemacht habe, ist 'CVS' zu' .gitignore' hinzuzufügen. Auf diese Weise kann ich immer noch sowohl git als auch cvs benutzen und der Rest der Welt benutzt nur git ohne die Idee, dass ein cvs repo involviert ist. –
@BurhanAli, nein, das ist der ganze Sinn von cvs - die CVS-Metadaten sind NICHT spezifisch für mich, aber sie sind spezifisch für meine checkout-Version, was der springende Punkt ist, da es dieselbe Version ist, die git verpflichtet ist. Ich kann keinen Nutzen darin sehen, den gesamten 'CVS /' zu '.gitignore' hinzuzufügen, denn dann, wenn Sie Ihren lokalen Git-Checkout bereinigen, sind die CVS-Daten irreparabel verschwunden. Wie ist das für jeden besser? Wenn Sie mir nicht glauben, versuchen Sie http://github.com/cnst/mdocml, sollte es wie mit Git und CVS (nach dem Auschecken mit Git zuerst) auf jedem modernen System funktionieren. – cnst
Vielleicht ist es ein Artefakt wie cvs dann benutzt wird. Ich benutzte die 'extssh'-Methode und so enthielten meine' Root'-Dateien etwas wie 'username @ hostname:/repopath', was für andere nicht nützlich wäre. Ich habe das Verzeichnis auch nicht gelöscht, weil ich immer aktiv daran gearbeitet habe. Denken Sie sorgfältig darüber nach, ob diese Dateien für andere nützlich sind und ob ihre Anwesenheit zu Verwirrung führen wird. –