/ / Visual Studio kann nicht mit zwei Ursprungs-URLs arbeiten - git, visual-studio-2013

Visual Studio kann nicht mit zwei Ursprungs-URLs arbeiten - git, visual-studio-2013

Ich versuche, zwei Repositories, die auf zwei verschiedenen Seiten (Github und Bitbucket) gehostet werden, synchron zu halten, indem ich eine neue URL zur Konfiguration hinzufüge. Nun sieht meine .git / config wie folgt aus:

[remote "origin"]
url = https://rrev@bitbucket.org/rrev/sampclient.git
fetch = +refs/heads/*:refs/remotes/origin/*
url = https://github.com/rrev/SAMPClient.git

Jetzt haben Github und Bitbucket die gleichen Commitsund der selbe Quellcode, aber wenn ich versuche, ein Commit zu den beiden Repositories zu pushen, sendet Visual Studio das Commit nur an Github und lässt den Bitbucket zurück.

Es sieht so aus, als ob Visual Studio mit zwei URLs nicht gut funktioniert, weil ich verschoben wurde url = https://github.com/rrev/SAMPClient.git im [remote "all"] Zum Testen sendet Visual Studio das Commit korrekt an Bitbucket und als ich die Github-URL zurücksetzte, stellte es fest, dass das Repository hinter dem lokalen Repository war.

Es ist eine Einschränkung von Visual Studio? Weil, wenn ich die Befehlszeile verwende, um die Änderungen (mit git push) Die beiden Repositories werden korrekt synchronisiert.

Antworten:

1 für die Antwort № 1

Dies ist eine Einschränkung von Visual Studio. Wie Sie sehen können, wenn Sie verwenden git push alles funktioniert gut.

- Anton Ego


1 für die Antwort № 2

Wenn Sie zwei Fernbedienungen benötigen, benötigen Sie zwei Fernbedienungen. Ich bin total falsch, git push berücksichtigt mehrere URLs. Ich kann nicht sagen, ob dies eine absichtliche oder zufällige Eigenschaft ist. Laut libgit2 ist dies eine bewusste Eigenschaft von Git für genau Ihre Situation.

Meine Vermutung ist, dass Visual Studio nicht die Git-Befehlszeile verwendet, sondern stattdessen eine Bibliothek wie libgit2 (Bestätigt). libgit2 ist eine viel schnellere und zuverlässigere Option (insbesondere unter Windows) für eine Anwendung, Git zu verwenden, als die Befehlszeile zu umbrechen. libgit2 hat keine direkten Analogien zur Git-Kommandozeile. Besonders wichtig ist das Arbeiten mit Fernbedienungen. libgit2-Fernbedienungen können nur eine URL haben, Es ist in ihre Datenstruktur und API gebacken.

Mein Vorschlag ist, entweder vom Befehl zu drückenZeile, oder zwei haben zwei Fernbedienungen und denken daran, an beide zu drücken, oder entscheiden, einer von ihnen ist ein Spiegel und einen automatischen Prozess für die Synchronisierung, oder (IMO am besten) entscheiden, dass Sie nicht brauchen, ein identisches Repository zu pflegen auf einem redundanten Entwicklungsdienst.