Mercurial: Wie kann ich einen Änderungssatz mit Lesezeichen verschieben, der einen neuen Remote-Kopf erstellt, als würde ich einen neuen Zweig verschieben?

8

Allgemeine Frage.

Ich versuche, Lesezeichen anstelle von Zweigen in mercurial zu verwenden. Der Grund dafür ist, dass ich in Zweigen nicht viele unnötige feste benannte permanente Elemente haben möchte.

Das Problem tritt auf, wenn ich ein separates Lesezeichen für eine neue Feature-Entwicklung verwende und es in das Out-Repository verschieben möchte. Nun, hg erlaubt mir nicht zu drücken, wenn 'neuer Remote Head' erstellt wird. Was soll ich in der Lage sein, so einen Schub zu machen, als ob ich einen neuen Zweig erstellen würde?

Beispiel (eine Möglichkeit, das Problem zu reproduzieren).

Alice erstellt Repository:

%Vor%

Bob klont Alices Repository:

%Vor%

Alice nimmt einige Änderungen am Code des Projekts vor:

%Vor%

Bob beginnt seine Arbeit an New Cool Feature mit einem separaten Lesezeichen, um seinen unabhängigen "Zweig" der Arbeit zu identifizieren:

%Vor%

Bob versucht, seine Änderungen in Alices Verzeichnis zu übertragen:

%Vor%

Ok, zuerst muss Bob die Änderungen von Alice in sein eigenes Repository ziehen:

%Vor%

Nun, Bob hat zwei Köpfe in seinem Repository, das ist in Ordnung.

%Vor%

Nach dem Versuch, einen weiteren Push zu machen, wird Bob zur Zusammenführung aufgefordert. Bob möchte die Zusammenführung nicht vornehmen, da seine Ergebnisse der Arbeit an New Cool Feature noch nicht für die Zusammenführung bereit sind.

%Vor%

Beispielbezogene Frage.

Was sollte Bob tun, um seine Änderungen in Alices Repo zu übertragen, als wären seine Änderungen in einem separaten Zweig?

Aktualisierungen

UPD1: In einer realen Situation wird Alices Repo als zentraler Synchronisationspunkt für alle Mitglieder des Entwicklerteams verwendet.

    
Igor Soloydenko 20.05.2012, 10:26
quelle

1 Antwort

9

Er sollte entweder:

  • Nicht drücken. Warum will er seine unvollendeten Änderungen auf jemand anderem Maschine?
  • Zwingen Sie es. Er wurde gefragt, ob er vergessen habe zu fusionieren. Er tat es nicht. Er will einen neuen Kopf, also zwinge ihn.

Die Nachricht ist da, weil es oft einfach ist, einen neuen Kopf zu erstellen, ohne es zu merken. Manchmal ist es genau das, was Sie wollen, und deshalb gibt es den Override-Schalter.

    
Paul S 20.05.2012, 11:41
quelle

Tags und Links