Wie kann festgestellt werden, ob in der Quellcodeverwaltung nützlicher gelöschter Code vorhanden ist?


9

Ich habe diese Frage gelesen. Soll ich nicht referenzierten Code entfernen?

Einige der Ratschläge waren, nicht referenzierten Code zu löschen, da sich der Code als Referenz in der Quellcodeverwaltung befindet, falls er später benötigt wird.

Wie organisieren Sie diesen gelöschten Code, damit eine spätere Version von Ihnen (oder einem anderen Programmierer) ihn später finden kann? Erstellen Sie einen separaten Zweig oder markieren Sie ihn irgendwie in der Quellcodeverwaltung?

Ich habe gelöschten Code noch nie aus der Quellcodeverwaltung wiederbelebt. Ich habe ihn meistens nur verwendet, um Änderungen an Code zu verfolgen, der noch aktiv ist. Ich habe bereits auf Zweige verwiesen, wenn diese die experimentelle Arbeit eines anderen enthalten haben. Vielleicht ist dies eine gute Möglichkeit, interessante Codeabschnitte zu markieren, die im Trunk gelöscht werden?


welche vcs fragst du avout? klingt wie svn
gnat

svn ist das, was ich vorhabe, könnte aber für jede Quellcodeverwaltung gelten, denke ich?
Peter Smith

Sie sagen: "Was ich mehr im Sinn habe, sind stornierte oder verschobene Projekte" als Reaktion auf eine Antwort. Ich denke, Sie sollten Ihre Frage bearbeiten, da dies ganz anders ist als "nicht referenzierter Code".
Pieter B

Antworten:


6

Sofern Sie nicht in einem Zweig experimentieren und noch nicht sicher sind, welche Lösung letztendlich wieder integriert wird, beziehen Sie sich normalerweise nicht auf gelöschten Code.

Sie könnten auf sehr seltene Gelegenheit, ausdrücklich für entfernten Code graben , dass Sie vage daran erinnern , ein Problem , das Sie haben die Lösung jetzt . Der typischere Grund, warum Sie gelöschten Code sehen, ist, wenn Sie das Backlog durchsuchen, um etwas über den aktuellen Code oder das aktuelle Verhalten einer Anwendung in Bezug auf ihren historischen Code oder ihr Verhalten zu verstehen.

Insbesondere könnten Sie ...

  • Durchführen einer allgemeinen Codeüberprüfung / Verstehen eines Refaktors
  • Suche nach dem Commit, das den Fehler X eingeführt hat
  • Befriedigung Ihrer Neugier / Suche nach dem Commit, das einen Fehler behoben hat
  • erneutes Implementieren einer Funktion oder einer ähnlichen Funktion
  • Verständnis Code oder Daten , die scheint , funktioniert in Verbindung mit Code wie es das nicht existiert

... etc.

In diesen Fällen wird der alte Code normalerweise nicht wiederbelebt. Sie verstehen nur etwas , das Sie sehen gerade jetzt entfernt Code für Kontext oder Anleitung verwenden.


4

Ich denke, die Antwort lautet: Die überwiegende Mehrheit der Programmierer kümmert sich nicht darum, gelöschten Code zu referenzieren. Aus verschiedenen Gründen. Einige Gründe, die mir in den Sinn kommen, sind:

  • Am wichtigsten ist wohl reine Faulheit ...

  • Die meisten hatten nie das Bedürfnis, Code wiederzubeleben, daher haben sie keine Erfahrung, die sie dazu motiviert, die Wiederbelebung von Code zu vereinfachen.

  • Der meiste gelöschte Code wird aus einem bestimmten Grund gelöscht. Normalerweise wird es durch einen anderen, besseren, funktional äquivalenten oder leistungsfähigeren Code ersetzt. Warum sollte jemand den minderwertigen Code wiederbeleben wollen?

    Beachten Sie, dass dies auch wieder ein psychologisches Problem ist: Die meisten Programmierer sind ziemlich stolz auf die Ergebnisse ihrer Arbeit. Wie konnte es jemals in den Sinn kommen, dass das, was sie ersetzten, immer noch einen gewissen Wert hatte?

  • Da der meiste Code nicht nur gelöscht, sondern ersetzt wird, bieten die im Übergang geänderten Schnittstellen genügend Informationen, wenn Sie den gelöschten Code aufgrund einiger durch den neuen Code eingeführter Regressionen wirklich aufspüren müssen.

Unabhängig davon, wie viel mehr oder weniger gültige Gründe Sie für diese Missachtung von totem Code verwenden können, denke ich, dass es für die Programmierer wirklich nur ein "egal" ist. Und selbst wenn Sie versuchen, gelöschte Inhalte auf die eine oder andere Weise zu markieren, sollten Sie darauf vorbereitet sein, bei dieser Anstrengung gründlich ignoriert zu werden ...


Ich denke, ich werde versuchen zu beantworten, warum. Wenn es sich um ersetzten Code handelt, ist es nach kurzer Zeit sinnvoll, den gelöschten Code nicht mehr wirklich zu benötigen. Was ich mehr im Sinn habe, sind stornierte oder verschobene Projekte. Insbesondere solche, bei denen ein großer Teil der Funktionalität entwickelt oder geändert wurde, aber letztendlich nicht vollständig fertiggestellt und in der aktuellen Produktion nicht verwendet wurde.
Peter Smith

1
@PeterSmith: Sie sollten separate Zweige für diesen Code erstellen. Dann muss der Code nicht gelöscht werden, da er ohnehin nicht im Arbeitszweig vorhanden ist.
JacquesB

Wenn Sie zusätzlich zu den Aussagen von @JacquesB Code haben, der überhaupt nicht verwendet wird, ist dieser in der Regel ziemlich schnell veraltet. Möglicherweise können Sie einen toten Zweig nach einem Jahr wiederbeleben. Nach fünf Jahren müssen Sie neu starten. Der tote Zweig kann immer noch als Ideenquelle nützlich sein, aber der Code selbst ist wahrscheinlich nicht mehr verwendbar.
cmaster

1

Diese Frage greift wahrscheinlich auf "Wie können Sie die Rückverfolgbarkeit Ihrer VCS-Checkins anhand der Fehlerdatenbank und Ihrer Systemanforderungen aufrechterhalten?"

Die Zeiten, in denen Leute Code aus der Quellcodeverwaltung wiederbeleben, sind in der Regel die Zeiten, in denen Sie feststellen, dass etwas unbeabsichtigt kaputt gegangen ist und zurückgebracht werden muss.

Das Wichtigste in diesem Szenario für jemanden, der nach einem bestimmten Stück entfernten Codes sucht, ist, dass er ihn leicht nachverfolgen kann, indem er die Anforderungsdatenbank und das Fehlerverfolgungstool durchsucht. weil sie wahrscheinlich nach der spezifischen Anforderung oder nach Wörtern suchen, die die Funktionalität beschreiben. Es ist unwahrscheinlich, dass sie den Namen der Quelldatei oder die Klasse / Funktion kennen, die entfernt wurde.

Wenn Sie einen interessanten / experimentellen Code verfolgen möchten, der vor der Veröffentlichung entfernt werden muss, können Sie ihn einfach mit einigen "Bug" -Tickets nach dem Motto "Nicht verwendeten Code entfernen für ..." verfolgen . Oder führen Sie eine neue Art von Ticket in das System für die Prototyp-Funktion ein .

Um die Frage direkt zu beantworten - verwenden Sie keine Zweige / Tags in Ihrem VCS-System, um gelöschten Code zu verfolgen - verwenden Sie Ihr Änderungsverfolgungstool.


0

Der Rat richtet sich an Personen, die veralteten Code "nur für den Fall" in der Codebasis behalten. Da der Code weiterhin in der Quellcodeverwaltung vorhanden ist, sollten Sie nicht befürchten, ihn zu löschen. Sie organisieren gelöschten Code nicht wirklich als solchen, da der springende Punkt ist, dass er nicht mehr benötigt wird. Sie fügen einfach eine Festschreibungsnachricht hinzu, die angibt, was im Festschreiben geändert und gelöscht wurde. Die relevanteste Festschreibungsnachricht für den gelöschten Code ist die Nachricht zum Zeitpunkt des ersten Hinzufügens des Codes und nicht die Nachricht beim erneuten Löschen.

"Experimentelle Arbeit" ist wirklich ein anderes Thema. Sie sollten dafür einen separaten Zweig haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.