GIT-Warnung: Zu viele Dateien überspringen die ungenaue Umbenennungserkennung

78

Beachten Sie, dass das Standardlimit für das Umbenennen 100 beträgt und diesen Wert mithilfe der Konfiguration "diff.renamelimit config" erhöhen kann.

Was ist besorgt ist, wenn diese Konfiguration nicht eingerichtet ist, wird es eine falsche Zusammenführung geben, fehlender Code? Ich versuche, 2 Zweige zusammenzuführen (Git Merge), die große Änderungen haben.

Kann jemand mehr Licht über diese Konfigurationseinstellung werfen?

Senthil A Kumar
quelle
Ich hatte die gleiche Erfahrung und kann bestätigen, dass die Nachricht lediglich eine Warnung ohne andere Konsequenzen als ein paar lästige Zusammenführungskonflikte ist.
Johan H
Ich habe diese Warnung auf diff Befehl
JobaDiniz

Antworten:

52

Ihr Inhalt ist sicher.

Soweit ich weiß, gitgibt es eigentlich kein Konzept für einen erstklassigen renameBetrieb (nur bzrfür die großen 3 DVCS): Das mvist Zucker über der zugrunde liegenden Maschinerie, die im Grunde genommen ein addund ein ist rm. Da gitder Inhalt, der sich während solcher Vorgänge ändert, verfolgt werden kann, kann er mithilfe von Heuristiken erraten, wann a addund a rmtatsächlich a sind mv. Da dies viel mehr Arbeit erfordert als nur das Anzeigen der gittatsächlich aufgezeichneten Daten - die Dokumente git-differklären, dass "... O (n ^ 2) Verarbeitungszeit erforderlich ist, wobei n die Anzahl der potenziellen Umbenennungs- / Kopierziele ist" -, gitwird dies nicht versucht wenn zu viele Dateien beteiligt sind. Die von Ihnen erwähnte Einstellung steuert nur diesen Schwellenwert.

Hank Gay
quelle
22
"Ihr Inhalt ist sicher" - Wenn bei der Erkennung jedoch eine Datei fehlt, die auf der einen Seite einer Zusammenführung umbenannt und auf der anderen Seite geändert wurde, treten Zusammenführungskonflikte auf, die Sie möglicherweise nicht erhalten hätten, wenn die Umbenennung erkannt worden wäre. Die Zusammenführung ist nicht falsch , erfordert jedoch möglicherweise mehr Benutzeraufwand.
Cascabel
2
Danke Hank und Jefromi. Wird das Einrichten dieser "diff.renamelimit-Konfiguration" in jeder Situation wirklich nützlich sein?
Senthil A Kumar
4
Wenn sich auch jemand fragt, ob diese Einstellung nützlich ist: Ja, sie kann Ihnen beim Zusammenführen von Zweigen helfen, wenn Sie in einem Zweig Hunderte von Dateien verschoben haben und in einem anderen viele Änderungen an diesen Dateien vorgenommen haben. Ich hatte eine solche Situation, als ich einen riesigen Code-Refactor in einem Zweig und einige laufende Arbeiten in einem anderen hatte.
Korda
38

Falls dies jemandem hilft, hatte ich viele Dateien (Hunderte, wenn nicht Tausende) in einem Zweig, die sich noch nicht im anderen Zweig befanden. Laufen

$ git config merge.renamelimit 15345

Der folgende Fehler beim Zusammenführen wurde behoben

$ git merge master
.
.
.
warning: inexact rename detection was skipped due to too many files.
warning: you may want to set your merge.renamelimit variable to at least 15345 and retry the command.
M3RS
quelle