WinCvs – Руководство по каждодневному применению

Или как использовать WinCvs и остаться в здравом уме.

Перевод  на Русский язык Getos Ltd. info@getos.belgorod.su

 


 

Содержимое

  1. Введение
  2. Терминология
  3. Создание нового модуля
  4. Получение нового модуля с CVS
  5. Получение другими людьми изменений с CVS
  6. Разрешение конфликтов
  7. Отправка изменений на CVS
  8. Просмотр изменений
  9. Присвоение файлам меток
  10. Добавление файлов и директорий
  11. Удаление файлов и директорий
  12. Перемещение или переименование файлов и директорий
  13. Ветвление
  14. Выбор ветви для работы
  15. Объединение ветви
  16. Возврат к главной линии разработки
  17. Кто редактирует этот файл?
  18. Приложение A: FAQ
  19. Приложение B: Чем отличается CVS от Microsoft Visual Source Safe

Введение

Этот документ описывает каждодневное использование WinCvs 1.0.x клиента. Это не введение в систему контроля версий, не введение в CVS, и не введение в WinCvs. Это похоже на место, куда вы можете вернуться если вы приблизительно знаете, что вы хотите сделать, но не совсем помните как это сделать.

Предполагается, что вы уже инсталлировали WinCvs и сконфигурировали ее для «разговора» с репозиторием CVS, который вы хотите использовать.

Если ваш броузер поддерживает таблицы цвета, то в этом документе вы встретитесь с выделением текста различным цветом.  Данный стиль относится к элементам пользовательского интерфейса WinCvs, таким как кнопки, закладки и метки полей ввода. Ссылки на оригинальную документацию по CVS даны дроугим стилем.

Терминология

Терминолоия, используемая в документации по CVS, и соответственно в WinCvs, может отличаться от терминологии, используемой другими системами для репозиториев исходного кода. Пытаясь избежать недоразумений, мы даем краткий список наиболее важных терминов. Пожалуйста, ознакомьтесь с этими словами, прежде чем погрузиться в оставшуюся часть этого документа.

Checkout

Обычно используется для описания первого возвращения всего модуля из репозитория.

Commit

Отправляет сделанные вами изменения в репозиторий.

Export

Обозначает извлечение всего модуля из репозитория, без каких-то административных файлов CVS: Экспортируемые модули не будут подконтрольны CVS.

Import

Обычно относится к процессу создания нового модуля в репозитории после отправления туда всей структуры директориев.

Module

Иерархия какого-то директория. Проект программного обеспечения обычно представлен в репозитории единственным главным модулем.

Release

Версия всего проекта.

Revision

Версия одного файла.

Tag

Символическое имя, которое присваивается ряду файлов на заданное время разработки.

Update

Позволяет получить из репозитория изменения, сделанные другими пользователями. Обновляет только локальную копию.

Подробнее о "ревизиях", "релизах", "версиях" и "тагах", см. главу 4 документации по CVS.

Первоначальное создание нового модуля

Передача проекта для контроля версий называется импортом (importing) по терминологии CVS. Подразумевается, что вы должны иметь что-то для импорта на CVS сервер, прежде чем думать о контроле версий.

CVS не хватает хорошей поддержки реструктурирования иерархии файлов проектов, поэтому вы можете избежать многих проблем, если потратите какое-то время на планирование, прежде чем импортировать новый модуль.

Базовой для операции импорта является "чистая" структура директориев. Под чистой мы подразумеваем то, что файлы, для которых не нужен контроль версий (файлы созданные компилятором, .BAK файлы и т.д.) удалены. Это в частности важно, если ваш проект уже разрабатывался какое-то время. Вы можете иметь несколько файлов в вашей иерархии, которые вы не хотите передавать под контроль версий, но которые вы, тем не менее, хотите держать там, где они есть. В этом случае вы должны удалить их, прежде чем импортировать, после этого вернуть назад.

Учтите, что CVS трактует пустые директории как несуществующие. Если вы хотите добавить директорию в которой нет ни файлов ни поддиректорий, то вы должны создать какой-то временный файл в нем. Мы полагаем, что вы создадите файл README.txt, который содержит краткое описание того, для чего нужен этот директорий.

Раз вы имеете структуру каталогов, которая  содержит лишь те файлы, которые вы хотите иметь в репозитории, сделайте следующее, чтобы импортировать этот модуль используя WinCvs:

  1. Выберите меню Cvs Admin -> Import module.
  2. В появившемся файловом диалоге выберите директорию верхнего уровня проекта, который вы хотите импортировать, открыв значок его папки.
  3. WinCvs теперь попытается идентифицировать любые бинарные файлы, кторые у вас могут быть в вашем дереве директория. При появлении окна фильтров убедитесь, что упомянутые файлы имеют правильную установку text/binary.
  4. В диалоге Import settings введите имя модуля. Это будет имя директория верхнего уровня когда люди будут его считывать.
  5. Введите ваше имя или имя вашей компании (без пропусков) в поле Vendor tag.
  6. Введите start в поле Release tag.
  7. Нажмите кнопку OK.

WinCvs теперь импортирует всю вашу иерархию директории на сервер CVS. Заметьте, что ничего не произойдет с вашими локальными файлами при операции импорта. Это означает, что ваша локальная копия после импорта не будет под контролем версий. До начала работы вы должны сделать следующее:

  1. Переименуйте вашу оригинальную иерархию, например, в *.old используя проводник Windows.
  2. Выполните процедуру «Check out» для копии нового модуля согласно инструкциям раздела Получение нового модуля с CVS.
  3. Опционально скопируйте назад "неконтроллируемые" файлы, которые вы переместили.

Теперь вы сможете начать работать с вашей версией контроля проекта.

[ CVS Doc: "Starting a project with CVS" ]

Получение нового модуля с CVS

Первое получение модуля с  сервера CVS называется checkout. Получение модуля из репозитория дает вам локальную копию иерархии директория, составляющего модуль. Чтобы выполнить чекаут сделайте следующее:

  1. Выберите меню Cvs Admin -> Checkout module.
  2. В появившемся файловом диалоге выберите директорию, в которую вы хотите поместить этот модуль. Директория с именем модуля будет создана в том директории, которое вы укажите, так что вы обычно захотите задать директорию, где содержатся ваши проекты.
  3. Появится диалог установок. В поле Enter the module name... введите имя модуля. Заметьте, что имя модуля чувствительно к регистру.
  4. Выберите закладку Globals.
  5. Установите Checkout read-only согласно договоренности с лидером проекта (см. ниже).
  6. Нажмите кнопку OK.

Если вы установите Checkout read-only, то вам будет необходимо указать WinCvs какие файлы вы намерены редактировать, прежде чем их редактировать. Это может быть неудобно, но это позволяет другим разработчикам отслеживать, кто в настоящий момент редактирует данные файлы. Более подробно об этом смотрите в разделе Кто редактирует этот файл?.

[ CVS Doc: "checkout -- Check out sources for editing" ]

Получение изменений, сделанных другими, с CVS

Время от времени вам придется встраивать в вашу локальную рабочую копию изменения, сделанные другими. Процесс получения изменений с сервера в вашу локальную копию называется обновлением (updating). Обновление можно выполнить с одним файлом, набором файлов или рекурсивно с целой иерархией директориев. Для обновления сделайте следующее:

  1. Выделите директорию, файл или файлы, которые вы хотите обновить.
  2. Щелкните правой кнопкой мыши на сделанном выделении и выберите пункт меню Update selection.
  3. Убедитесь, что помечена опция Create missing directories that exist in the repository.
  4. Нажмите кнопку OK.

Изменения, сделанные другими будут объединены с вашими файлами, сохраняя любые изменения, которые вы могли сделать с этими же самыми файлами. На репозиторий изменения не влияют.

Если вы получите сообщения о конфликтахпри обновлении, то пожалуйста, прочитайте следующий раздел.

[ CVS Doc: "Bringing a file up to date" ]
[ CVS Doc: "update -- Bring work tree in sync with repository" ]

Разрешение конфликтов

Когда нибудь CVS сервер выдаст сообщение о конфликте при загрузке и обновлении ваших файлов с репозитория. Конфликт возникает когда два или более разработчика изменили несколько одинаковых строк какого-то файла. Поскольку CVS ничего не знает о вашем проекте, она оставляет разрешение конфликтов разработчикам. При получении сообщения о конфликте, вы должны открыть  запрашиваемый файл и найти строки, начинающиеся с символов <<<<<<<. Область конфликта маркируется так:

<<<<<<< filename
    ваши изменения
=======
    код, полученный из репозитория
>>>>>>> revision

Вы должны решить, как должен выглядеть код и сделать необходимые изменения, удалив разметку CVS и передав (commit) ваши изменения в репозиторий.

[ CVS Doc: "Conflicts example" ]

Передача ваших изменений на CVS

Передача локальных модификаций на сервер называется  committing.

  1. До передачи вы должны сделать обновление, чтобы гарантировать отсутствие конфликтов. См. Получение изменений, сделанных другими с CVS.
  2. Выберите директорию, файл или файлы которые вы хотите отправить в репозиторий (commit).
  3. Щелкните правой кнопкой мыши на сделанном выделении и выберите пункт меню Commit selection.
  4. В диалоге Commit settings, введите журнальное сообщение. Этот шаг опциональный, но рекомендуется его сделать, чтобы кратко описать изменения.
  5. Нажмите кнопку OK.

Обратите, пожалуйста, внимание, что передача изменений не влечет за собой автоматического добавления новых файлов, которые вы создали в репозиторий. См. Добавление файлов и директорий для описания как это делается.

[ CVS Doc: "commit -- Check files into the repository" ]

Просмотр изменений

WinCvs можно использовать для просмотра статуса, logs, изменений и т.п. для файлов и директорий.

  1. Пометьте директорию, файл или группу файлов, о которых вы хотите узнать побольше.
  2. Щелкните правой кнопкой мыши по выделенному и выберите один из пунктов: Diff selection, Log selection, Status selection or Graph selection.
  3. Если всплывет диалоговый бокс, то введите любую необходимую информацию и нажмите кнопку OK.

Вот краткое объяснение того, что можно ожидать от различных статус команд.

Diff

Позволяет вам сравнить вашу локальную копию файла с любой ревизией того же самого файла в репозитории. Позволяет также сравнить различные ревизии в репозитории. Результат состоит из строк, начинающихся с < или >, помечая этими символами строки, которые должны быть соответственно удалены или добавлены из вашей ревизии к той , с которой вы ее сравниваете.

Log

Показывает log messages, даты, таги, авторов, и т.д. для всех ревизий данных файлов (если вы не ограничиваете какие ревизии показать).

Status

Отображает статус модификации заданных файлов, т.е. изменены ли файлы локально или в репозитории. Также показывает как локальные, так и репозитарные номера ревизии и таги, если они есть.

Graph

Довольно крутая особенность, показывающая график ревизии для какого-нибудь одного файла. В частности полезна, когда у вас в истории ревизии файла имеется одна или более ветвь. Локальная ревизия помечается значком документа. График позволяет вам выбрать две ревизии (используя кнопку shift по ряду причин) и сделать сравнение между ними.

[ CVS Doc: "diff -- Show differences between revisions" ]
[ CVS Doc: "log -- Print out log information for files" ]

Маркировка файлов метками

На заданной стадии разработки, присвоение одному или более файлам некоторой общей метки для ссылки на их ревизии, известно как маркировка (tagging) этих файлов. Маркировка обычно используется в целом для модулей, так чтобы текущее состояние модуля можно было реконструировать в будущем. Этот тип маркировки должен быть всегда сделан при поставке проекта и до начала значительных изменений.

Чтобы пометить один или более файлов или директорий какой-то меткой сделайте следующее:

  1. Укажите директорию, файл или файлы, которые вы хотите маркировать.
  2. Щелните правой кнопкой мыши по указанному элементу и выберите пункт меню Tag selection -> Create a tag.
  3. Введите метку в входном поле New tag name. (См. ниже ограничения на имена маркировки.)
  4. Нажмите кнопку OK.

Обратите внимание, что CVS довольно ограничено при выборе символов, которые может содержать метка: Маркер должен начинаться с буквы и может содержать только буквы, цифры, "-" (тире) и "_" (нижняя черта). В частности, это значит, что нельзя использовать точки и пробелы. Если вы хотите включить номер версии в метку, то точки замените на тире. Зарезервированы два имени маркера, поскольку они имеют специальное значение в CVS: "HEAD" относится к самой свежей версии доступной в репозитории, тогда как "BASE" является ревизией, которую вы последний раз скачали в локальную директорию.

[ CVS Doc: "Tags -- Symbolic revisions" ]

 

Добавление файлов и директорий

Когда вы создаете новые файлы, которые вы хотите включить в репозиторий, вам необходимо сказать CVS обработать эти файлы. Если директория содержит не контролируемые CVS файлы, то вам надо добавить их в следующим образом:

  1. Укажите директорию, файл или файлы, которые вы хотите добавить.
  2. Щелкните правой кнопкой мыши на указанном элементе и выбирите пункт меню Add selection or Add selection binary. Различайте бинарные и текстовые файлы, иначе эти файлы будут покорежены CVS!
  3. Так как эти файлы лишь только помечены для добавления, вы должны для ввода их в репозиторий выполнить команду commit. Смотрите Sending Your Changes to CVS, если вы не знаете как это сделать.

Если вы хотите добавить всю иерархию директориев вместо нескольких файлов, то вышеприведенная техника становится обременительной, поскольку операция add не является рекурсивной. В этом случае лучше использовать импорт, как описано в разделе Создание нового модуля:

  1. Выберите меню Cvs Admin -> Import module.
  2. В появившемся файловом диалоге выберите директорию, которую вы хотите добавить, открыв значок папки.
  3. WinCvs попытается идентифицировать бинарные файлы, которые вы может быть содержите в вашем дереве каталогов. Проверьте корректность установок текст / бинарный.
  4. In the Import settings dialog, type the module name with the directory appended. Если имя модуля называется MyProject, и вы импортируете субдиректорию source/utils, то введите MyProject/source/utils в поле ввода Select the module name...
  5. Введите ваше имя или имя вашей компании (без пробелов) в поле Vendor tag.
  6. Введите start в поле Release tag.
  7. Нажмите кнопку OK.

WinCvs теперь импортирует всю вашу иерархию директориев на CVS сервер в выбранный модуль. Заметьте, что ничего не изменится в ваших локальных директориях при операции импорта. Это означает, что ваша локальная копия не будет под контролем версий после импорта. Для контроля новой иерархии получите ее копию из репозитория:

  1. Переместите вашу оригинальную иерархию куда-либо, например переименовав импортированную вами директорию в *.old в проводнике.
  2. В WinCvs пометьте директорию выше той, которую вы добавили. Щелкните на ней правой кнопкой мыши и выберите Update selection.
  3. Убедитесь, что установлен флажок Create missing directories that exist in the repository.
  4. Нажмите кнопку OK.

WinCvs предоставит вам свежую копию вашей иерархии с контролем версий.

[ CVS Doc: "Adding, removing, and renaming files and directories" ]

Удаление файлов и директорий

Чтобы удалить файлы, вы вначале должны пометить удаляемые файлы и затем выполнить команду commit, сообщая об изменении:

  1. Пометьте файл или файлы, которые вы хотите удалить.
  2. Щелкните правой кнопкой мыши на сделанном вами выборе вызовите пункт меню Remove selection.
  3. Как только файлы помечены для удаления, вы должны выполнить для них команду commit, чтобы удалить их из репозитория. См Sending Your Changes to CVS, если вы не знаете как выполнить команду commit.

Теперь файлы будут удалены из репозитория. Заметьте, что файлы удаляются не физически, а скорее помечаются как "мертвые". Таким образом все еще остается возможность восстановить эти файлы, если вы решите вернуться к старой версии модуля.

Директории удаляются иначе. Опционально CVS удалит пустые директории, когда вы обновите (update) одну из его родительских директорий. Если вы хотите освободится от пустой директории, сделайте следующее:

  1. Выберите родительскую директорию пустой директории, которую вы хотите удалить.
  2. Щелкните правой кнопкой мыши по выбору и выберите пункт меню Update selection.
  3. Выберите закладку Globals.
  4. Убедитесь, что помечена флажком опция Prune (remove) empty directories (по умолчанию).
  5. Нажмите кнопку OK.

Директория будет удалена, если все ее файлы были предварительно удалены с вашей локальной копии и  из репозитория на сервере.

[ CVS Doc: "Adding, removing, and renaming files and directories" ]

Перемещение или переименование файлов и директорий

Операции по перемещению и переименованию файлов или директорий недоступны в CVS. Это одно из ограничений CVS. Чтобы выполнить перемещение и переименование вы должны скомбинировать операции перемещения и добавления. См. Добавление файлов и директорий и Удаление файлов и директорий.

[ CVS Doc: "Moving and renaming files" ]

Ветвление

Одной из особенностей системы контроля версий является способность изолировать изменения в отдельной линии разработки. Эта линия известна как ветвь (branch). (См. What branches are good for в документации по CVS)

Чтобы создать ветвь, сделайте следующее:

  1. Пометьте директорий или файлы, которые вы хотите разветвить.
  2. Щелкните правой кнопкой мыши по отмеченному выбору и выполните пункт меню Tag selection -> Create a branch.
  3. В поле ввода New branch name, введите tag имя, которое вы хотите использовать для вашей ветви. Смотрите Tagging Files with a Label, чтобы узнать какие символы можно использовать для присвоения меток.
  4. Включите флажок Check that the files are unmodified before branching.
  5. Нажмите кнопку OK .

Теперь в репозитории будет создана новая ветвь с заданным именем. Замечание: Ветвь создается только в репозитории. Чтобы начать работать с вновь созданной ветвью вы должны сделать то, что описано в разделе Selecting a Branch to Work on.

[ CVS Doc: "Branching and merging" ]

Выбор ветви для работы

Чтобы начать работать с ветвью вместо генеральной линии разработки, вам необходимо связать вашу локальную копию с этой веткой. Это необходимо для того, чтобы быть уверенным, что такие действия как updates, commits и т.д. выполняются с ветвью, а не с главной линией разработки.

Для перемещения вашей локальной копии в другую ветвь сделайте следующее:

  1. Выберите директорию верхнего уровня проекта. (Если вы точно знаете какие директории и файлы являются частью ветви, то вы вместо этого можете указать их.)
  2. Щелкните правой кнопкой мыши на отмеченном директории и выберите пункт меню Update selection.
  3. Убедитесь, что помечена опция Create missing directories that exist in the repository.
  4. Перейдите на закладку Sticky options.
  5. Щелкните по флажку Retrieve rev./tag/branch.
  6. В поле ввода Retrieve rev./tag/branch, введите имя тега ветви, на которую вы хотите переключиться.
  7. Нажмите кнопку OK.

WinCvs теперь сделает необходимые изменения в вашей рабочей копии и переместит ее в необходимую ветвь. Обновление может включать добавленные или удаленные файлы.

CVS устанавливает sticky tags для файлов, на которые воздействует эта ветвь. Вы можете просматривать эти sticky tags запуская команду status для этих файлов, как описано в Viewing Changes. Чтобы удалить sticky tags и таким образом вернуться к главной линии разработки, следуйте описанию в Going Back to the Main Line of Development.

[ CVS Doc: "Accessing branches" ]

Объединение ветви

Если вы удовлетворены внесенными вами в ветвь изменениями, то вы можете пожелать сделать эти изменения доступными в главной линии разработки. Встраивание изменений из одной ветви в другую называется объединение (merging). Для объединения ветви сделайте следующее:

  1. Переместите вашу локальную копию в ветвь, с которую вы хотите объединить изменения. См Selecting a Branch to Work on or Going Back to the Main Line of Development.
  2. Выберите директорию верхнего уровня проекта. (Если вы точно знаете какие директории и файлы являются частью ветви, то вы вместо этого можете указать их.)
  3. Щелкните правой кнопкой мыши по сделанному выбору и выполните пункт меню Update selection.
  4. Убедитесь, что помечена опция Create missing directories that exist in the repository.
  5. Выберите закладку Merge options .
  6. Щелкните по радио кнопке Only this rev./tag.
  7. В поле ввода Only this rev./tag, введите имя тега ветви.
  8. Нажмите кнопку OK.

Любые изменения в ветви теперь будут объединены с вашей локальной копией. Вероятно вы захотите передать объединенные файлы назад в репозиторий, как описано в Передача ваших изменение в CVS.

Важное замечание: Данное выше объединение будет пытаться объединить изменения с начала ветви. Если вы делаете эту операцию второй раз (чтобы объединить изменения, сделанные с ветвью после последнего объединения), то вам вовсе не нужно делать объединение сначала ветви, и это, наиболее вероятно, добавит вам хлопот. Чтобы преодолеть эту проблему, вы должны давать ветви новый тег после каждого объединения, и использовать новый тег при указании имени ветви для последующих слияний.

[ CVS Doc: "Merging an entire branch" ]

Возврат к основной линии разработки

Если вы хотите приостановить работу на ветвью и переместить вашу локальную копию назад на главную линию разработки, то вы должны указать WinCvs удалить все sticky tags. Чтобы удалить sticky tags и таким образом обновить вашу локальную копию to the main development line, сделайте следующее:

  1. Выберите директорию верхнего уровня проекта. (Если вы точно знаете какие директории и файлы являются частью ветви, то вы вместо этого можете указать их.)
  2. Щелкните правой кнопкой мыши по сделанному выбору и выполните пункт меню Update selection .
  3. Убедитесь, что отмечена опция Create missing directories that exist in the repository.
  4. Включите флажок Reset any sticky date/tag/'-k' options.
  5. Нажмите кнопку OK.

WinCvs теперь обновит вашу локальную копию так, что она будет соответствовать текущей главной линии разработки. Ветвь, в которой вы были, все еще существует в репозитории и вы можете вернуться к ней как описано в разделе Selecting a Branch to Work on когда захотите.

[ CVS Doc: "Sticky tags" ]

Кто редактирует этот файл?

Можно спросить CVS кто в настоящий момент редактирует некоторый файл, но это срабатывает только в том случае, если разработчики уведомляют CVS когда они намереваются править файл. Эта модель известна как IR CVS модель, и необходимо решить в начале работы над проектом о целесообразности ее использования.

Чтобы использовать модель IR CVS, разработчики должны выполнить операцию check out для модуля с опцией только для чтения (read only). Это может быть сделано пометив флажок Checkout read-only на закладке Globals каждого диалога WinCvs.

Чтобы отредактировать файл сделайте следующее:

  1. Укажите файл, который вы хотите редактировать.
  2. Щелкните правой кнопкой мышки по указанному файлу и выберите пункт меню Monitors selection -> Edit selection. (Альтернативно, используйте значок на панели инструментов.) Флажок read-only fбудет удален и сервер CVS зарегистрирует вас как редактора данного файла.
  3. Отредактируйте файл.
  4. Commit этот файл как описано в Sending Your Changes to CVS.

Когда вы передаете файл, CVS сервер предполагает, что вы его больше не редактируете и WinCvs сделает этот файл снова доступным только для чтения. Если вы не сделали никаких изменений, то операция commit не сообщит серверу CVS, что вы завершили его редактирование. В этом случае вы должны сделать скорее следующее:

  1. Пометьте файл для редактирования.
  2. Щелкните правой кнопкой мыши по сделанному выбору и выполните пункт меню Monitors selection -> Unedit selection. (Альтернативно, используйте значок на панели инструментов.)

А теперь вернемся к первоначальному вопросу: "Кто редактирует этот файл?" Чтобы получить список редактирующих, если есть таковые для этого файла, сделайте это:

  1. Выберите интересующий вас файл.
  2. Щелкните правой кнопкой мыши по сделанному выбору и выполните пункт меню Monitors selection -> Editors of selection .

WinCvs теперь выдаст список тех, кто редактирует этот файл.

[ CVS Doc: "Multiple developers" ]

Приложение A: FAQ

1.      Что означают таинственные буквы, появляющиеся при обновлении?

См update output в руководстве по CVS.

2.      Время на сервере неверное! Теги и логи показывают неверное время!

Это особенность (feature). CVS будет всегда использовать UTC для журнализации.

Приложение B: Чем CVS отличается от Microsoft Visual Source Safe

CVS и WinCvs отличаются от Visual Source Safe (VSS) по многим параметрам. Наиболее очевидная особенность может быть в том, что CVS не требует от пользователей замыкать файлы с которыми они работают, как это делает по умолчанию VSS. Фактически, документация CVS даже encourages пользователей не использовать замыкание файлов. В редких случаях, когда несколько людей одновременно изменяют один и тот же файл, CVS будет обычно способна объединить их изменения. Если два или более разработчика изменили одни и теже несколько строк, CVS сообщит о конфликте, вставит директивы в этот файл и оставит его разработчикам чтобы они решили что делать. Такие конфликты крайне редки, поскольку встречаются в результате плохой коммуникации между разработчиками (например, два человека пытаются исправить одну и ту же проблему).

Другое важное отличие состоит в том, что VSS дает вам «взгляд с сервера», в то время как WinCvs показывает «взгляд клиента». На практике это означает, что, в отличии от VSS, WinCvs не сообщит вам об изменениях в репозитории до тех пор, пока вы не сделаете update, или явно не сделаете запрос о статусе выбранных файлов. Изменения, отображаемые в файловом окне WinCvs, отражают изменения, сделанные вами после последней операции checkout, update или commit.

CVS не так "визуальна" как VSS. При использовании WinCvs, становится ясно, что CVS была в течении многих лет программой с командной строкой, прежде чем кто-то решил встроить ее в графический интерфейс пользователя GUI. Некоторые из нас предпочитают упрощенный подход WinCvs, который может дать чувство контроля для опытных пользователей. Другие она не понравится. Если вы один из последних, то можете улучшить программу и предоставить ваши изменения сообществу или воспользоваться более простой программой TortoiseCVS (http://www.cvsgui.org/TortoiseCVS/guide.html).


2000-04-28 Sverre -- mailto:shh@computas.no
Оригинальная CVS документация 1.10.6, на которую мы ссылаемся, написана Per Cederquist et al.
You may find its source on the official CVS site at sourcegear.

Brought to you by Computas AS.
We use this guide internally. As we think it may be
of use to others as well, we provide this slightly modified
version on our web site. Feel free to copy it as you wish.
wincvs-howto.zip