2009-01-16 10 views
5

Ich habe mich gefragt, welchen Mechanismus Leute benutzt haben, um Peer Reviews zu erzwingen und zu verfolgen, um SVN zu begehen.Der beste Weg, um Peer Reviews vor dem Commit zu verfolgen und zu erzwingen

Für jeden Commit möchte ich in der Lage sein zu verfolgen, ob Leute einen Peer-Review hatten (ich bin mir nicht sicher, ob eine Regel durchzusetzen, wo sie nicht committen kann) erzwungen werden, da es einen wahrscheinlich gültigen Grund gibt, ohne einen Peer-Review zu begehen), aber die nicht überprüften Commits sollten verfolgt werden können, so dass wir vor einer Veröffentlichung alle diese Commits sehen können.

+0

Hat jemand eine Idee von Tools für Peer-Review? – Dean

+0

Möchten Sie eine andere Frage dafür stellen ?? –

Antwort

2

Sie könnten verlangen, dass jeder Entwickler das Tag des Überprüfungsentwicklers zum Festschreiben in einem festen Format wie [REV: XYZ] hinzufügt. So können Sie den Verlauf filtern. Wie bereits erwähnt, können Sie die Pre-Commit-Hooks Ihres Quellcodeversionierungstools verwenden, um dies bei Bedarf durchzusetzen.

Dann muss die Regel, dass kein Code ohne Peer-Review festgelegt werden kann, allen Entwicklern mitgeteilt werden. Zeigen Sie auch die Vorteile des Überprüfens von Code vor dem Festschreiben. In den ersten paar Monaten sollte jemand den Commit-Verlauf für Commits ohne Revisions-Tag überprüfen. Wenn sie welche finden, fragen Sie die Entwickler, warum sie eine Überprüfung durchgeführt haben und mit wem. Wenn es keine Überprüfung gab, erinnere sie an die Regel. Wenn einige Entwickler wissentlich mehrere Male gegen diese Regel verstoßen, kann dies Rückwirkungen haben, aber Gruppenzwang verhindert dies normalerweise.

Normalerweise gibt es keine Entschuldigung dafür, keine Überprüfung durchzuführen, wenn diese Regel in Kraft ist. Vor allem das "Aber ich musste diesen Bug schnell beheben, um dem Kunden die fixe Version zu liefern", kann keine Entschuldigung sein, denn ein Entwickler ist eher in der Eile, Fehler zu machen.

1

persönlich kann ich oft begehen zu 50-mal pro Tag in der Nähe SVN, so dass ich würde nicht es mag;)

Ich weiß Atlassian Green Plugin für JIRA kann als Pre-committ Haken ausgeführt wird ein verlangen Jira Referenz im Commit. Wenn Sie greenhopper auch für die Planung von Entwicklungsaufgaben verwenden, können Sie erzwingen, dass alle Commits mit einem jira-Problem verbunden werden.

Und selbst wenn Sie nicht greenenhopper verwenden, könnten Sie wahrscheinlich einen Pre-Commit-Hook erstellen, der einen Commit-Kommentar erzwingt, der eine Issue-Tracking-Referenznummer enthält.

Dies sollte wahrscheinlich Sie die gesammelten Change Set mit einem Jira-Problem verbunden sammeln, das klingt wie eine bessere Idee für mich.

2

Diese Frage klingt wie eine Werbung für ein verteiltes VCS wie git oder bzr: Sie müssen Entwickler oft Änderungen vornehmen können, aber auf ihren eigenen Zweig, der dann überprüft wird, bevor sie in das zentrale Repository gezogen wird.

1

Entwickler konnten für jede Änderung einen Zweig erstellen (nicht jedes Commit). Sie können so oft wie sie wollen in dieser Branche machen. Bevor die Änderungen jedoch in den Trunk integriert werden, können Sie einen Peer-Review erzwingen. Ihr Stamm enthält also nur Peer-Review-Code.

Sie können dies über Berechtigungen tun, so dass nur ausgewählte Personen den Stamm übernehmen können, und sie können prüfen, ob der Code in Ordnung ist, bevor Sie dies tun.

Ich habe seit einiger Zeit Versionskontrolle verwendet und denke, dass das Arbeiten im Zweigleitungsmodell (anstatt im Stamm zu arbeiten) gut ist. DVCS-Systeme wie Git gehen einen Schritt weiter und scheinen für viele Leute gut zu funktionieren.

+0

In keinem Zweig pro Feature können Entwickler auch in ihrem eigenen Zweig arbeiten. –

0

Ein Weg, wie Sie es tun können, ist mit einem Prüfer-Commits Regel in Ihrem Team. Das heißt, Entwickler dürfen keinen eigenen Code schreiben, sie müssen andere davon überzeugen, ihren Code in ihrem Namen zu schreiben.

Ich habe schon früher an solchen Projekten gearbeitet, und es funktioniert ziemlich gut. Der Nachteil ist, dass bei Subversion der Name des Überprüfers, nicht der des Entwicklers, im Protokoll angezeigt wird. Mit git können Sie den Namen des Entwicklers beibehalten, und der Prüfer fügt eine Signated-by-by-Zeile hinzu.