Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ исходными тСкстами. Π§Π°ΡΡ‚ΡŒ 1. ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ CVSΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 5

Автор Илья Π Ρ‹ΠΆΠ΅Π½ΠΊΠΎΠ²

β€Ί cvs -d:local:c:/cvs/repository checkout -d test2 test

cvs checkout: Updating test2

U test2/readme.txt

U test2/todo.txt

β€Ί

ΠŸΠ Π•Π”Π£ΠŸΠ Π•Π–Π”Π•ΠΠ˜Π• ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ -d Π΄ΠΎ ΠΈ послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ checkout ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ смысл. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° мСстонахоТдСниС рСпозитория, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ test2, Π° Π½Π΅ test

ПослС выполнСния этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ создан Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, связанный с Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Π½Ρ‘ΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ внСсти измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ эмулируя Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… программистов. Π˜Ρ‚Π°ΠΊ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Π½ΠΎΠ²ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ» todo.txt (я Π΄ΠΎΠ±Π°Π²ΠΈΠ» строчку Β«Some changeΒ» Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ commit для обновлСния рСпозитория:

β€Ί cvs commit -m "added line"

cvs commit: Examining.

Checking in todo.txt;

d:\temp\rep/test/todo.txt,v β€Ή- todo.txt

new revision: 1.2; previous revision: 1.1

done

Π‘ΠžΠ’Π•Π’ Команда cvs status ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° - сообщаСт, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ Ρƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ‡ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ создана новая рСдакция, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«testΒ» Π΅Ρ‰Π΅ Π½Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± этом ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ. НСобходимо Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ update Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ измСнСния ΠΈΠ· рСпозитория. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ update ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Β«testΒ»:

β€Ί cvs update

cvs update: Updating.

U todo.txt

Π’ процСссС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ систСма ΠΈΠ·ΡƒΡ‡ΠΈΠ»Π° содСрТимоС рСпозитория ΠΈ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» todo.txt Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ измСнился, поэтому ΠΎΠ½ ΠΈ Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½. Π‘ΡƒΠΊΠ²Π° Β«UΒ» ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° являСтся сокращСниСм ΠΎΡ‚ Update ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ ΠΈΠ· рСпозитория Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½Ρ‘ΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ. Π§Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚, Ссли ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ update ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«testΒ»? Π’ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° трСбуСтся совмСщСниС Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ:

β€’ Π’ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ рСдакция 1.2

β€’ Π’ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Β«testΒ» измСнённая рСдакция 1.1

Π’ этом случаС CVS сначала ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ· рСпозитория измСнСния ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ (1.2) ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ исходной локальной Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ (1.1, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° выглядит Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ). Π—Π°Ρ‚Π΅ΠΌ CVS совмСщаСт измСнСния ΠΎΡ‚ 1.1 Π΄ΠΎ 1.2 ΠΈ ΠΎΡ‚ 1.1 Π΄ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ локальной ΠΊΠΎΠΏΠΈΠΈ Ρ„Π°ΠΉΠ»Π°. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этих нСпростых вычислСний получаСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», содСрТащий Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΡƒΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вСрсии 1.2.

RCS file: d:\temp\rep/test/test.c,v

retrieving revision 1.1

retrieving revision 1.2

Merging differences between 1.1 and 1.2 into test.c

M test.c

Π‘ΡƒΠΊΠ²Π° «М» ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ локально, ΠΈ опСрация commit Π΅Ρ‰Π΅ Π½Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ. Π˜Π½Ρ‹ΠΌΠΈ словами, Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ измСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

WINCVS Алгоритм, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, довольно слоТСн, ΠΈ описаниС Π΅Π³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠ΅ΡΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словам CVS, RCS, diff3, merge.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ CVS Π² состоянии ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ измСнСния, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² случаС пСрСсСчСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΈΡ… слишком Π±Π»ΠΈΠ·ΠΊΠΎΠ³ΠΎ располоТСния CVS отказываСтся ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΡ… сам, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅ ΠΈ оставляСт Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ„Π°ΠΉΠ» Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. ПослС этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

WINCVS ОбновлСниС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° происходит ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Update selection… ΠΈΠ· мСню Modify. ΠžΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²

ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ совмСщСнии Π΄Π²ΡƒΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Ссли ΠΎΠ½ΠΈ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ располоТСны слишком Π±Π»ΠΈΠ·ΠΊΠΎ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ совмСщСниС (merge) Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ тСкста ΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΈ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅, Π²Ρ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, Ссли Π½Π΅ мСняСтС Ρ„Π°ΠΉΠ»ΠΎΠ² локально (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, просто скачиваСтС обновлСния ΠΈΠ· общСдоступного рСпозитория Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅). Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, Ссли Π½ΠΈΠΊΡ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ вас Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ обновлСния рСпозитория, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ использовании CVS Π»ΠΈΡ‡Π½ΠΎ для сСбя Π² Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… условиях. Если ΠΆΠ΅ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, которая Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ исходный тСкст - Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ΅Π½.

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π²Ρ‹Π²ΠΎΠ΄ CVS выглядит Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ.

cvs update: Updating.

RCS file: d:\temp\rep/test/test.c,v

retrieving revision 1.1

retrieving revision 1.2

Merging differences between 1.1 and 1.2 into test.c

rcsmerge: warning: conflicts during merge

cvs update: conflicts found in test.c

C test.c

Π‘ΡƒΠΊΠ²Π° C ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π» ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π° -q ΠΈΠ»ΠΈ -Q сообщСний ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°Ρ… Π±ΡƒΠ΄Π΅Ρ‚ мСньшС, Π½ΠΎ сути это Π½Π΅ мСняСт.

WINCVS CVS Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΎΠ½ сохраняСт Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π² Ρ„Π°ΠΉΠ»Π°Ρ… с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ с Β«.#Β» (Ρ‚ΠΎΡ‡ΠΊΠ°, Ρ€Π΅ΡˆΡ‘Ρ‚ΠΊΠ°). Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС имя Ρ„Π°ΠΉΠ»Π° выглядит Ρ‚Π°ΠΊ: Β«.#исходноС-имя-Ρ„Π°ΠΉΠ»Π°.Π½ΠΎΠΌΠ΅Ρ€.Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«.#test.c.1.1Β». НапримСр, эти Ρ„Π°ΠΉΠ»Ρ‹ сохранят ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ вСрсии Π½Π° случай ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ участки тСкста Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² своСобразныС скобки:

β€Ήβ€Ήβ€Ήβ€Ήβ€Ήβ€Ήβ€Ή

Π·ΠΎΠ½Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°

β€Ίβ€Ίβ€Ίβ€Ίβ€Ίβ€Ίβ€Ί

Π’Π½ΡƒΡ‚Ρ€ΠΈ Π·ΠΎΠ½Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Β«========Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отдСляСт вашС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· рСпозитория. ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° выглядит Ρ‚Π°ΠΊ:

β€Ήβ€Ήβ€Ήβ€Ήβ€Ήβ€Ήβ€Ή

имя-Ρ„Π°ΠΉΠ»Π° локальноС (Π’Π°ΡˆΠ΅) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅

=======

рСдакция ΠΈΠ· рСпозитория

β€Ίβ€Ίβ€Ίβ€Ίβ€Ίβ€Ίβ€Ί Π½ΠΎΠΌΠ΅Ρ€ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ


Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² Ρ‚ΠΎΠΌ состоянии, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ считаСтС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ. ΠŸΡ€ΠΈ нСобходимости, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰Π΅Π³ΠΎ измСнСния ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ этот вопрос совмСстно.

ΠŸΠ Π•Π”Π£ΠŸΠ Π•Π–Π”Π•ΠΠ˜Π• CVS считаСт, Ρ‡Ρ‚ΠΎ Ссли врСмя ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° (modification time) измСнилось с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° обнаруТСния ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ΅Π½Π° ΠΈ Ρ„Π°ΠΉΠ» Π³ΠΎΡ‚ΠΎΠ² ΠΊ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сначала рСкомСндуСтся ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π² Ρ„Π°ΠΉΠ»Π΅ (ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поиск строки β€œβ€Ήβ€Ήβ€Ήβ€, ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Ρ‹, ΠΈ ΡƒΠΆΠ΅ ΠΏΠΎΡ‚ΠΎΠΌ Β«ΠΎΠ΄Π½ΠΈΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌΒ» внСсти всС ΠΏΡ€Π°Π²ΠΊΠΈ. Если ΠΆΠ΅ Π²Ρ‹ исправитС Π½Π΅ всС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈ сохранитС Ρ„Π°ΠΉΠ», Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ commit, Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ окаТСтся Ρ„Π°ΠΉΠ» с ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ, ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ практичСски Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½Ρ‹. CVS сообщит ΠΎ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Β«warning: file `имя-Ρ„Π°ΠΉΠ»Π°' seems to still contain conflict indicatorsΒ», Π½ΠΎ Π²Π΅Ρ€ΡΠΈΡŽ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ всё ΠΆΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½ Π² своих Π΄ΠΎΠ³Π°Π΄ΠΊΠ°Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π² исходном тСкстС Π½Π° C++

void clear_string(char *p) {

 *p=0; // здСсь ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° ошибка - Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° NULL

}

ΠžΡˆΠΈΠ±ΠΊΡƒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ Π΄Π²ΠΎΠ΅ программистов нСзависимо ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π΅, Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π΅Ρ‘ ΠΈ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ. Один сдСлал Ρ‚Π°ΠΊ:

void clear_string(char *p) {

 if (p) *p=0;

}

А Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π°ΠΊ:

void clear_string(char *p) {

 if (!p) return;

 *p=0;

}

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ помСстил Π²Π΅Ρ€ΡΠΈΡŽ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ попытался Ρ‚ΠΎΠΆΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, Π½Π° Ρ‡Ρ‚ΠΎ CVS сообщил, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ устарСл ΠΈ трСбуСтся ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅:

cvs commit: Up-to-date check failed for `test.c'

cvs commit: file `todo.txt' had a conflict and has not been modified

Он обновляСт свой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ cvs update ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сообщСниС ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π΅. ΠžΡ‚ΠΊΡ€Ρ‹Π² Ρ„Π°ΠΉΠ», ΠΎΠ½ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

void clear_string(char *p) {

β€Ήβ€Ήβ€Ήβ€Ήβ€Ήβ€Ήβ€Ή test.c

 if (!p) return;

 *p=0;

=======

 if (p) *p=0;

β€Ίβ€Ίβ€Ίβ€Ίβ€Ίβ€Ίβ€Ί 1.2

}

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π½Π΅ Π·Π°ΠΉΠΌΡ‘Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ Ρ„Π°ΠΉΠ» вновь ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π²ΠΈΠ΄.

void clear_string(char *p) {

 if (p) *p=0;

}

ПослС этого ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ commit

Π Π°Π±ΠΎΡ‚Π° с рСдакциями

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ рСдакциями ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ довольно Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ процСссом, Ссли Π½Π΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ слСдуСт Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ CVS управляСт ΠΈΠΌΠΈ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ΠšΡ€Π°Ρ‚ΠΊΠΎ сформулируСм основныС ΠΏΡ€Π°Π²ΠΈΠ»Π°:

β€’ Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° своя нумСрация Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅Ρ‚ Π΅Π΄ΠΈΠ½ΠΎΠΉ Π½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ для всСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

β€’ НомСр рСдакция измСняСтся ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‡Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ измСняСтся Ρ„Π°ΠΉΠ», Ρ‡Π΅ΠΌ Ρ‡Π°Ρ‰Π΅ выполняСтся опСрация commit - Ρ‚Π΅ΠΌ большС Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρƒ Ρ„Π°ΠΉΠ»Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

β€’ НомСра Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Ρ‚ΡŒ.

β€’ Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ хранится мноТСство Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π² частности, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΡ‚ΠΎ это сдСлал (Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ), ΠΊΠ°ΠΊΠΎΠΉ Π±Ρ‹Π» ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅

Установка символичСского ΠΈΠΌΠ΅Π½ΠΈ для Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΉ

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ (tag), ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΡƒΡŽ Ρ€Π΅Π΄Π°ΠΊΡ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ², находящихся Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ имя для всСх Ρ„Π°ΠΉΠ»ΠΎΠ² Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ состоянии рСпозитория послС выпуска ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ вСрсии своСго ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Ρ€Ρ‹Π½ΠΎΠΊ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° tag: