Wie richte ich eine Codeüberprüfung mit Gitlab ein?

85

Wie richtet man eine Codeüberprüfung mit Gitlab ein? Ich sehe es als eine Funktion auf der Gitlab-Website aufgelistet, aber ich kann anscheinend keine Anweisungen zum Einrichten finden (im Übrigen wäre jeder Link zu einem Gitlab-Benutzerhandbuch sehr willkommen).

Einige meiner Suchanfragen haben ergeben, dass "Zusammenführungsanforderungen" der richtige Weg sind ... aber ich finde sie einschränkend. Eine ausgegebene Zusammenführungsanforderung zeigt alle Commits zwischen einem Zweig und dem anderen an. Ich kann anscheinend nur Unterschiede anzeigen, die für jedes einzelne Commit generiert wurden. Angenommen, ich habe eine Datei, die ich überprüfen möchte. Es ist eine neue Datei, aber ich habe über 10 Commits in einem Entwicklungszweig Änderungen daran übermittelt. Wenn ich eine Zusammenführungsanforderung für diesen Entwicklungszweig aus der Integration heraus gebe, werden 10 Commits angezeigt, von denen jedes die inkrementellen Änderungen an der Datei anzeigt. Ich möchte das Ganze überprüfen. Es ist neu!

Belle ich hier den falschen Baum an? Gibt es ein aktuelles Tool zur Codeüberprüfung, das ich in GitLab verwenden kann, oder sind Zusammenführungsanforderungen der richtige Weg, und wenn ja, verwende ich sie falsch? Was ist der beste Weg, um hier eine ordnungsgemäße Codeüberprüfung einzurichten?

djc6535
quelle
1
GitLab 6.4 und seine Side-by-Side-Diff-Ansicht können bei der
Codeüberprüfung hilfreich sein
Mit GitLab 13.1 (Juni 2020) haben Sie jetzt Merge Request Reviews. Siehe meine bearbeitete Antwort unten
VonC

Antworten:

24

Hinweis: Seit GitLab 6.4 ist eine Side-by-Side-Diff-Ansicht verfügbar: siehe " Pull Request 5308 ".

(Juli 2013)Es gibt jedoch noch keine Möglichkeit, jede Zeile zu kommentieren, nur auf Dateiebene.
Daniel Sokolowski erwähnt in den Kommentaren, dass Kommentare pro Zeile jetzt unterstützt werden (09/2014):

Ihre Teammitglieder können die Zusammenführungsanforderung im Allgemeinen oder in bestimmten Zeilen mit Zeilenkommentaren kommentieren.

Das kann immer noch bei der Codeüberprüfung hilfreich sein.

https://f.cloud.github.com/assets/4224518/1558702/e0fe633a-4fa3-11e3-9388-3f3e445cb6d4.png


6 Jahre später für GitLab 13.1 (Juni 2020) :

Merge Request Reviews wurden in Core verschoben

Merge Request Reviews wurde ursprünglich in GitLab 11.4 als GitLab Premium-Funktion eingeführt und ermöglicht es Merge Request Reviewers:

  • mehrere Kommentare gleichzeitig einreichen,
  • Reduzierung des Benachrichtigungsrauschens für den Autor der Zusammenführungsanforderung und
  • Dies ermöglicht einen kohärenteren und optimierten Überprüfungsprozess.

https://about.gitlab.com/images/13_1/batch_comments.png

Seit seiner Einführung haben wir seinen Platz in unserem käuferbasierten Preismodell neu bewertet. Als Teil von 13.1 freuen wir uns, Ihnen mitteilen zu können, dass diese Funktion jetzt auf GitLab Core umgestellt wurde.

Siehe Dokumentation und Ausgabe

VonC
quelle
Kommentare pro Zeile werden jetzt unterstützt: "Ihre Teammitglieder können die Zusammenführungsanforderung im Allgemeinen oder bestimmte Zeilen mit Zeilenkommentaren kommentieren." ( about.gitlab.com/2014/09/29/gitlab-flow )
Daniel Sokolowski
1
@ DanielSokolowski Großartig! Ich habe Ihren Kommentar zur besseren Sichtbarkeit in die Antwort aufgenommen.
VonC
9

Ich mache seit über zwei Monaten Code-Reviews in Gitlab, fast ohne Reibung. Ich habe rss2email so eingerichtet, dass E-Mail-Benachrichtigungen jedes Mal gesendet werden , wenn ein Entwickler neue Commits sendet. Dann verwende ich die Kommentarfunktion von Gitlab für Commits, um einige Kommentare zum Push-Code abzugeben.

Leider erlaubt Gitlab keine Kommentare zu Dateien selbst, nur in Commits (genau wie Github, denke ich). Immer wenn ich mich in einer Situation befinde, in der ich etwas kommentieren muss, das ich in einem vorherigen Commit verpasst habe, verwende ich das Schuld-Tool, um das Commit zu finden, das den zu kommentierenden Codeabschnitt eingeführt / geändert hat.

Es ist alles andere als perfekt, aber es funktioniert bisher gut.

Herberth Amaral
quelle
1
Anstelle von rss2email könnte man Gitlab-Benachrichtigungen verwenden, um über Pushs benachrichtigt zu werden.
Vadipp
Ich habe das gleiche Problem / Problemumgehung. Ich glaube, es wäre eine nette Ergänzung, wenn Sie dem richtigen Commit einen Kommentar hinzufügen könnten, der eine bestimmte Zeile in der Diff- oder Dateiansicht beschuldigt (ich meine, über die Weboberfläche Dateien oder Unterschiede durchsuchen, ohne Schuldzuweisungen).
AlejandroVD
2

Sie können den übermittelten Code in der Zusammenführungsanforderung für ein anderes Repository oder im aktuellen Repository anzeigen.
Beispiel http://demo.gitlab.com/diaspora/diaspora/commits/master

Anschließend können Sie Kommentare zu festgeschriebenen Dateiänderungen (Schaltfläche Reply) oder zum gesamten Festschreiben hinzufügen

Beispiel http://demo.gitlab.com/diaspora/diaspora/commit/42f47626890218a180870bc3f44ec57625b0779c

Die resultierende Kommunikation ist eine Codeüberprüfung . Ich persönlich empfehle jedoch, nach Möglichkeit eine Codeüberprüfung auf einem PC mit persönlicher Kommunikation durchzuführen und Tools zum Aufzeichnen von Ergebnissen zu verwenden oder wenn mehr Formalität erforderlich ist.

Für eine Datei-Revue mit vielen Commits, z. B. http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md, schauen Sie sich diese an, um blamezu verstehen, wer was getan hat. In dieser Ansicht gibt es jedoch keine Möglichkeit, zu kommunizieren und Kommentare hinzuzufügen. Ich würde empfehlen, in diesem Fall nur Änderungen als Kommentare hinzuzufügen.

Paul Verest
quelle
7
Ich bekomme eine 404 für den ersten, zweiten und letzten Link in Ihrer Antwort.
Bryan Oakley
1
Wie auf der Homepage steht, ist demo.gitlab.com "IS A SANDBOX - es wird jede Stunde zurückgesetzt", sodass alle Beispiele gelöscht wurden. Dies ist zum Beispiel kein gutes Fahrzeug.
Uriah Blatherwick
Ja, bitte überdenken Sie die Einrichtung anhand geeigneter Beispiele. Ihre Antwort scheint im Allgemeinen ein solider Rat zu sein.
Daten
0

Ja. Durch Zusammenführungsanfragen werden Peer Reviews durchgeführt.

Es sollte eine Registerkarte "diff" geben, auf der die Änderungen aller Commits angezeigt werden (hier erwähnt: http://youtu.be/DyAX8ws5OIc?t=3m2s ).

Das Video erklärt auch gut, wie es für Peer Review verwendet werden kann.

Zwiebeljake
quelle
0

Der normale Anwendungsfall von Codeüberprüfungen besteht darin, Code in einem Zweig vor dem Zusammenführen mit Master oder ähnlichem zu überprüfen. Ich habe eine Situation, in der ich ein Projekt entwickelt habe und möchte, dass der gesamte Code von allen im Team überprüft wird.

Was ich getan habe war:

Überprüfen Sie das erste Commit, nehmen Sie eine Änderung vor, schreiben Sie es fest und drücken Sie es

git co -b FIRST_COMMIT eb67f06c2b3222c0219214b176c41922bc454881
vi README.md
git add README.md
git ci -m "First commit modified so can get full diff against it"
git push --set-upstream origin FIRST-COMMIT

Überprüfen Sie das letzte Commit, nehmen Sie eine Änderung vor, schreiben Sie es fest und drücken Sie es

git co -b master
vi README.md
git add README.md
git ci -m "Last commit modified so can get full diff against it"
git push --set-upstream origin LAST-COMMIT

Erstellen Sie in GitLab / GitHub eine Pull-Anfrage

  • Es ist eine Zusammenführung von LAST_COMMIT zu FIRST_COMMIT

Funktioniert bei mir!

HankCa
quelle
Haben Sie dann nicht zwei "Junk" -Zweige im Repository und keine Verfolgung der Kommentare im Hauptzweig? Wenn Kommentare Codeänderungen erfordern, führen Sie sie dann zum Master zusammen?
user2084572
Ja, es gibt FIRST_COMMIT- und LAST_COMMIT-Zweige, die leicht zu löschen sind ( git br --delete --force origin FIRST_COMMIT LAST_COMMIT; git br --delete --force FIRST_COMMIT LAST_COMMIT). Sie können einen anderen Verzweigungsmaster verwenden, um Änderungen daran zu enthalten, oder separate Probleme manuell erstellen. Erstellen Sie später einen oder mehrere Zweige (z. B. einen pro Ausgabe), wenn zu viele Rückmeldungen vorliegen.
HankCa