Konflikt

Z UMP

(Różnice między wersjami)
(Czy muszę usuwać konflikt?: TODO)
(poprawki stylu, linkowanie do nadpisania)
Linia 7: Linia 7:
Konflikt nie grozi osobom bez praw zapisu - to nie one zapisują zmiany, tylko pełnoprawni edytorzy - może zdarzyć się, że [[diff|diffy]] przygotowane przez osobę bez uprawnień mogą doprowadzić do powstania konfliktu - gdy ktoś inny też edytował ten sam obiekt, a osoba z pełnymi uprawnieniami zaktualizuje źródła przed zapisaniem danych przez drugiego edytora.
Konflikt nie grozi osobom bez praw zapisu - to nie one zapisują zmiany, tylko pełnoprawni edytorzy - może zdarzyć się, że [[diff|diffy]] przygotowane przez osobę bez uprawnień mogą doprowadzić do powstania konfliktu - gdy ktoś inny też edytował ten sam obiekt, a osoba z pełnymi uprawnieniami zaktualizuje źródła przed zapisaniem danych przez drugiego edytora.
 +
 +
W wyniku edycji może również dojść do [[Nadpisanie|nadpisania danych]] i nie ma to związku z konfliktem.
== Jak wygląda konflikt? ==
== Jak wygląda konflikt? ==
-
Tu przykład z TARNOW.drogi.txt - próba wygenerowania konfliktu z jednym z edytorów. Udało się. Każdy konflikt będzie tak oznaczony:
+
Tu przykład z TARNOW.drogi.txt - próba wygenerowania konfliktu z jednym z edytorów, by mieć przykład do artykułu - po kilku próbach udało się. Każdy konflikt będzie tak oznaczony:
[POLYLINE]
[POLYLINE]
Linia 25: Linia 27:
[END]
[END]
-
To są dwie różne wersje obiektu - tego samego obiektu. Konflikt nie powstanie, gdy będziecie edytować różne obiekty w tym samym pliku - Wasze zmiany zostaną uwzględnione. W tym wypadku to ścieżka, która została narysowana by mieć co pokazać w przykładzie. Pierwszy edytor trochę ją powyginał (nowe punkty, przesunięcia punktów), drugi zrobił też to samo - też powyginał. Pierwszy wrzucił zmiany na serwer, w tym czasie drugi edytor był gotowy do wrzucenia i rozpoczął operację zapisu po zakończeniu zapisu przez pierwszego edytora. W tym momencie drugiemu edytorowi CVS zgłosił błąd.
+
To są dwie różne wersje obiektu - tego samego obiektu lub obszaru na końcu pliku. Konflikt nie powstanie, gdy będziecie edytować różne obiekty w tym samym pliku - Wasze zmiany zostaną uwzględnione. W tym wypadku to ścieżka, która została narysowana by mieć co pokazać w przykładzie. Pierwszy edytor trochę ją powyginał (nowe punkty, przesunięcia punktów), drugi zrobił też to samo - też powyginał. Pierwszy wrzucił zmiany na serwer, w tym czasie drugi edytor był gotowy do wrzucenia i rozpoczął operację zapisu po zakończeniu zapisu przez pierwszego edytora. W tym momencie drugiemu edytorowi CVS zgłosił błąd.
== Czy muszę usuwać konflikt? ==
== Czy muszę usuwać konflikt? ==
Linia 52: Linia 54:
* '''<<<<<<< TARNOW.drogi.txt'''
* '''<<<<<<< TARNOW.drogi.txt'''
* linię separującą wersje - złożoną ze znaków równości
* linię separującą wersje - złożoną ze znaków równości
-
oraz dorobić nagłówki linii. Zmontować mapę i podjąć decyzję na żywym organizmie, a później wysłać zmiany.
+
oraz dorobić brakujące linie definiujące obiekty (END oraz POLYLINE). Zmontować mapę i podjąć decyzję na żywym organizmie, a później wysłać zmiany.
-
Bardzo rzadko zdarzy się, że konflikt będzie dotyczył tej samej wersji obiektu - dwie osoby zrobią to samo, dodadzą punkt w tym samym miejscu, np. dorobią brakujące skrzyżowanie na przecięciu dwóch linii - wtedy dwie wersje będą takie same (''czy na pewno?''). W tym wypadku wystarczy jedną odrzucić.
+
Bardzo rzadko zdarzy się, że konflikt będzie dotyczył tej samej wersji obiektu - dwie osoby zrobią to samo, dodadzą punkt w tym samym miejscu, np. dorobią brakujące skrzyżowanie na przecięciu dwóch linii - wtedy dwie wersje będą takie same (''czy na pewno?'' '''tak - sprawdzone empirycznie'''). W tym wypadku wystarczy jedną odrzucić.

Wersja z dnia 08:44, 14 sty 2016


Spis treści

Co to jest konflikt?

Konflikt powstaje, gdy dwóch edytorów próbuje zapisać coś w tym samym pliku na tym samym obiekcie (lub na końcu pliku) - nie mogą tego zrobić w tym samym czasie - pierwszy edytor wrzuca swoje poprawki, później drugi edytor próbuje swoje dane zapisać i powstaje konflikt.

Konflikt nie grozi osobom bez praw zapisu - to nie one zapisują zmiany, tylko pełnoprawni edytorzy - może zdarzyć się, że diffy przygotowane przez osobę bez uprawnień mogą doprowadzić do powstania konfliktu - gdy ktoś inny też edytował ten sam obiekt, a osoba z pełnymi uprawnieniami zaktualizuje źródła przed zapisaniem danych przez drugiego edytora.

W wyniku edycji może również dojść do nadpisania danych i nie ma to związku z konfliktem.

Jak wygląda konflikt?

Tu przykład z TARNOW.drogi.txt - próba wygenerowania konfliktu z jednym z edytorów, by mieć przykład do artykułu - po kilku próbach udało się. Każdy konflikt będzie tak oznaczony:

[POLYLINE]
Type=0x16
<<<<<<< TARNOW.drogi.txt
Data0=(49.95279,20.95959),(49.95288,20.95972),(49.95290,20.95990),
(49.95290,20.96005),(49.95293,20.96011),(49.95296,20.96019),
(49.95304,20.96012),(49.95313,20.96002)
=======
Data0=(49.95279,20.95959),(49.95283,20.95969),(49.95281,20.95982),
(49.95287,20.95983),(49.95290,20.95990),(49.95288,20.96005),
(49.95296,20.96019),(49.95304,20.96012),(49.95313,20.96002)
>>>>>>> 1.1073
[END]

To są dwie różne wersje obiektu - tego samego obiektu lub obszaru na końcu pliku. Konflikt nie powstanie, gdy będziecie edytować różne obiekty w tym samym pliku - Wasze zmiany zostaną uwzględnione. W tym wypadku to ścieżka, która została narysowana by mieć co pokazać w przykładzie. Pierwszy edytor trochę ją powyginał (nowe punkty, przesunięcia punktów), drugi zrobił też to samo - też powyginał. Pierwszy wrzucił zmiany na serwer, w tym czasie drugi edytor był gotowy do wrzucenia i rozpoczął operację zapisu po zakończeniu zapisu przez pierwszego edytora. W tym momencie drugiemu edytorowi CVS zgłosił błąd.

Czy muszę usuwać konflikt?

Nie, nie musisz - nie będziesz mógł wtedy zapisać swoich danych na serwerze. Konflikt tak na prawdę powstaje u Ciebie - w Twoich źródłach. CVS zanim pozwoli wykonać commit musi mieć dane bez konfliktów, dopóki nie usuniesz konfliktu - nie zapiszesz danych.

Jak usunąć konflikt?

Najprościej przerobić powyższy fragment na coś takiego:

[POLYLINE]
Type=0x16
Data0=(49.95279,20.95959),(49.95288,20.95972),(49.95290,20.95990),
(49.95290,20.96005),(49.95293,20.96011),(49.95296,20.96019),
(49.95304,20.96012),(49.95313,20.96002)
[END]

[POLYLINE]
Type=0x16
Data0=(49.95279,20.95959),(49.95283,20.95969),(49.95281,20.95982),
(49.95287,20.95983),(49.95290,20.95990),(49.95288,20.96005),
(49.95296,20.96019),(49.95304,20.96012),(49.95313,20.96002)
[END]

czyli usunąć linie:

  • >>>>>>> 1.1073,
  • <<<<<<< TARNOW.drogi.txt
  • linię separującą wersje - złożoną ze znaków równości

oraz dorobić brakujące linie definiujące obiekty (END oraz POLYLINE). Zmontować mapę i podjąć decyzję na żywym organizmie, a później wysłać zmiany.

Bardzo rzadko zdarzy się, że konflikt będzie dotyczył tej samej wersji obiektu - dwie osoby zrobią to samo, dodadzą punkt w tym samym miejscu, np. dorobią brakujące skrzyżowanie na przecięciu dwóch linii - wtedy dwie wersje będą takie same (czy na pewno? tak - sprawdzone empirycznie). W tym wypadku wystarczy jedną odrzucić.