web-dev-qa-db-de.com

So richten Sie eine Code-Überprüfung mit Gitlab ein

Wie kann man eine Code-Überprüfung mit Gitlab einrichten? Ich sehe es als eine Funktion auf der Gitlab-Website, aber es scheint, als würde ich keine Anleitung finden, wie man eines einrichtet. (In diesem Zusammenhang wäre jeder Link zu einem Gitlab-Benutzerhandbuch sehr zu begrüßen). 

Einige meiner Recherchen haben gezeigt, dass "Merge Requests" der richtige Weg sind ... aber ich finde sie einschränkend. Eine ausgegebene Zusammenführungsanforderung zeigt alle Commits zwischen einer Zweigstelle und der anderen. Ich kann anscheinend nur die für jedes Commit generierten Unterschiede anzeigen. Angenommen, ich habe eine Datei, die ich überprüfen möchte. Es ist eine neue Datei, aber ich habe Änderungen an mehr als 10 Commits in einem Dev-Zweig vorgenommen. Wenn ich eine Zusammenführungsanforderung für diesen Entwicklungszweig aus der Integration ausstelle, werden 10 Commits angezeigt, von denen jedes die inkrementellen Änderungen an der Datei anzeigt. Ich möchte die gesamte Sache überprüfen. Es ist neu! 

Bin ich hier am falschen Baum? Gibt es ein aktuelles Code-Review-Tool, das ich in GitLab verwenden kann, oder sind Merge-Anforderungen der richtige Weg, und wenn sie falsch verwendet werden? Was ist der beste Weg, um hier eine korrekte Code-Überprüfung einzurichten?

78
djc6535

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

(Juli 2013)Zu jeder Zeile gibt es noch keine Möglichkeit, nur auf Dateiebene.
Daniel Sokolowski Erwähnungen in den Kommentaren dass Pro Zeile werden jetzt Kommentare unterstützt (09/2014): 

Ihre Teammitglieder können die Zusammenführungsanfrage allgemein oder bestimmte Zeilen mit Zeilenkommentaren kommentieren.

Dies kann immer noch bei der Codeüberprüfung helfen.

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

23
VonC

Ich habe seit über zwei Monaten Code-Reviews in Gitlab gemacht, und das fast ohne Reibung. Ich habe rss2email eingerichtet, um E-Mail-Benachrichtigungen zu senden, wenn ein Entwickler neue Commits durchführt. Dann benutze ich Gitlabs Kommentarfunktion für Commits, um einige Kommentare zum gepushten Code zu machen.

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 früheren Commit übersehen habe, benutze ich das Schuldtool, um das Commit zu finden, das den zu kommentierenden Codeabschnitt eingeführt/geändert hat.

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

8
Herberth Amaral

Sie können den gesendeten 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 festgeschriebene Dateiänderungen kommentieren (Schaltfläche Reply) oder auf das gesamte Commit

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

Das resultierende Kommunikation ist 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. http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md schau es dir mit an blame zu verstehen, wer was getan hat. In dieser Ansicht gibt es jedoch keine Option zum Kommunizieren und Hinzufügen von Kommentaren. Ich würde empfehlen, in diesem Fall nur Änderungen als Kommentare hinzuzufügen.

3
Paul Verest

Ja. Durch Zusammenführungsanforderungen werden Peer-Reviews durchgeführt.

Es sollte ein 'diff' Tab geben, der die Änderungen aller Commits anzeigt (hier erwähnt: http://youtu.be/DyAX8ws5OIc?t=3m2s ).

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

0
onionjake

Normalerweise wird bei Code-Reviews der Code in einem Zweig überprüft, bevor er in Master oder ähnliches zusammengeführt wird. Ich habe eine Situation, in der ich ein Projekt entwickelt habe und möchte, dass der gesamte Code von jedem Teammitglied überprüft wird.

Was ich gemacht habe war:

Überprüfen Sie den ersten Commit, nehmen Sie eine Änderung vor, Commit und Push

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

Den letzten Commit auschecken, eine Änderung vornehmen, Commit und Push

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-Anforderung

  • Es ist ein Zusammenführen von LAST_COMMIT zu FIRST_COMMIT

Funktioniert bei mir!

0
HankCa