Mercurial Repositories

Lordwurst

Ensign
Registriert
Okt. 2008
Beiträge
181
Moin,
ich habe da mal eine frage über Mercurial. Wenn eine person ein document erschaft und es zu dem remote repository pushed und eine andere person das dann pulled wie kann der dann das document aufrufen und bearbeiten??? Falls das überhaupt geht? wann ja wie?

Vielen Danke.
 
Mercurial_commandd_and_their_relations.png


Quelle: Wikipedia




Heisst konkret: Der andere klont sich das Master Repository (Remote hast du es genannt) als lokales Repository. Daraus erstellt er sich eine working copy und kann dann alles aus dem Repo angucken und ändern. Wenn er etwas geändert hat dann macht er ein Update von seinem working directory zu seinem local repository und danach ein push um seine änderung dem master mitzuteilen. Jetzt kannst du über ein Pull diese Änderung zu dir reinholen.
 
Zuletzt bearbeitet:
OK das hilft schon mal aber noch mal um das kurz für mich klar zu machen.
Ich habe auf einem pc von mir meinen master (remote mit namen LocalTest) in dem ist der .hg und .hgignore file drin mehr nicht.

Nun habe ich auf meinem anderen pc ein clone davon gemacht welches dann mein working local repository ist (mit namen repo1) i dem habe ich nur .hg Verzeichnis. wenn ich nun ein test.txt document erstelle und das nun zum master pushe wird das ja nur als history gespeichert von diesem file oder nicht?

wenn nun ein anderer sich einen clone vom master macht bekommt der ja die ganze history vom test.txt aber nicht das document test.txt. Kann der das denn über die history öffnen oder über command line und ändern? oder wie genau kann der dann das document bearbeiten?

die eigentliche frage ist ja hier bei ob zwei oder mehr leute an dem selben document arbeiten können was ansich gehen muss nur ich verstehe nicht ganz wie.

Also sorry falls ich bisschen langsam bin will hier keinen verärgern.

Vielen dank so weit. :)
 
Ich empfehle dir hier mal drei Links :

Beispiel mit einer test.txt (Verständlich)
Allgemeines Beispiel
Ausführliche Erklärung

Gerade wenn du das produktiv nutzen willst würde ich mir auf jeden Fall auch den letzten Link vollständig anschauen.


Zu deiner Frage direkt:
Du fügst deinem master-Repo durch "hd add test.txt" deine Datei hinzu. Dann pullst du in dein local-repo und updatest in deine working copy. Danach änderst du deine test.txt, committest die in dein local repo und pushst die in dein master-repo.

Jetzt hast du denselben Datenstand wie das master-repo. der zweite mitarbeiter klont nun initial das gesamte repo (in zukunft nurnoch pull) zur local-copy. danach aktualisiert er mit update seine working-copy. nun kann er ganz normal damit arbeiten. Wenn ihr beide an derselben Datei arbeitet ist das überhaupt kein Problem. Mercurial erkennt beim pushen(kopieren von local nach master repo) dass es zwei unterschiedliche versionen gibt und erzeugen eine baumstruktur. also zwei pfade. diese musst du irgendwann "mergen" also wieder zusammenführen. Solange ihr nur unterschiedliche zeilen geändert habt (er hat zeilen 1-3 verändert und du zeilen 5-7) dann kann mecurial das von selber auf befehl zusammenfügen. Ist das nicht möglich muss man von hand entscheiden welches der beiden codeschnipsel zum neuen tip(head) wird.


Hoffe ich konnte dir soweit helfen. Keiner ist verärgert, Mercurial ist auch nicht ganz einfach, wenn es das erst vcs ist. ;)


Gruß
Artemis
 
Vielen dank Artemis99 habe mir die links durch gelesen und es hat alles beantworted. Ich danke viel mals für deine hilfe!!
 
Zurück
Oben