Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
Введение в SVN:
Зачем использовать SVN?
В процессе написания программ каждый программист создает множество различных версий, что требует от программистов эффективного управления кодом и быстрого и точного получения соответствующей версии, когда это необходимо.
Что такое субверсия?
Это бесплатная система контроля версий с открытым исходным кодом. Набор файлов хранится в центральном хранилище версий, и Subversion позволяет вам восстанавливать данные до более ранних версий или проверять историю изменений данных. можно использовать по сети. Доступ к его хранилищу позволяет пользователям работать на разных компьютерах.
1: Создание и использование сервера SVN.
1. Сначала загрузите и создайте сервер SVN. Адрес загрузки следующий: http://subversion.apache.org/packages.htmlhttp://subversion.apache.org/packages.html, после ввода URL-адреса прокрутите страницу браузера вниз и увидите следующий снимок экрана:
Лично я считаю, что лучше всего использовать сервер-сервер VisualSVN и клиент TortoiseSVN вместе. Щелкните ссылку VisualSVN выше, загрузите сервер VisualSVN и дважды щелкните его, чтобы установить его после завершения загрузки, как показано ниже:
Нажмите «Далее», чтобы перейти к следующему шагу:
Затем нажмите пункт «Далее», следующий шаг, следующим образом:
Нажмите [Далее] следующим образом:
Местоположение относится к каталогу установки VisualSVN Server. Репозитории указывают каталог вашего репозитория. Порт сервера указывает порт. Использовать безопасное соединение означает использование безопасного соединения.
Нажмите «Далее», чтобы перейти к следующему шагу, как показано ниже:
Затем нажмите [Установить], чтобы открыть следующую схему установки:
Дождавшись завершения установки, нажмите [далее], чтобы перейти к следующему шагу: как показано ниже.
Нажмите [Готово] для завершения установки. После завершения установки запустите VisualSVN Server Manager, как показано на рисунке:
В правой части окна вы можете увидеть некоторую информацию о репозитории, такую как статус, журналы, аутентификация пользователя, репозиторий и т. д.
Чтобы создать репозиторий, вам нужно щелкнуть правой кнопкой мыши Репозитории в левом окне, как показано ниже:
Выберите «Создать» во всплывающем меню, вызываемом правой кнопкой мыши. New RepositoryИли создайте новый->Repository:
Перейдите к следующему шагу, как показано ниже:
Нажмите [Далее], как показано ниже:
Нажмите [создать], как показано ниже:
Нажмите [Готово], чтобы завершить базовое создание.
2. Необходимо создать пользователей и группы и назначить разрешения.
1. В VisualSVN Server Щелкните правой кнопкой мыши группу пользователей в левой части окна «Диспетчер» и выберите «Создать». UserИли создайте новый->User,Как показано на рисунке:
После нажатия «Пользователь» вы увидите следующее изображение:
После заполнения Логина и пароля нажмите кнопку ОК и введите следующую картинку:
После нажатия кнопки [Добавить] выше, как показано ниже.
Добавьте пользователю longen0707 (если пользователей несколько, операция та же).
2 . Затем создаем группы пользователей, VisualSVN Server Щелкните правой кнопкой мыши группу пользователей в левой части окна «Диспетчер» и выберите «Создать». GroupИли создайте новый->Group,Как показано на рисунке:
После нажатия кнопки [Группировать] вы введете следующую цифру:
Во всплывающем окне введите имя группы как «Разработчики», затем нажмите кнопку «Добавить», во всплывающем окне выберите «Разработчик», присоединитесь к этой группе и нажмите «ОК».
Далее нам нужно установить разрешения для группы пользователей, щелкнуть правой кнопкой мыши MyRepository и выбрать «Свойства», как показано на рисунке:
Во всплывающем диалоговом окне выберите вкладку «Безопасность», нажмите кнопку «Добавить», выберите longen0707, затем добавьте его и установите разрешения на чтение/запись, как показано ниже:
Нажмите кнопку [ОК].
Второе: установка клиента SVN.
1. Для начала нам нужно скачать «svn Little Turtle» и установить его. Например, я скачал следующее:
После завершения установки, например, в моем проекте в qiandaun1, я могу щелкнуть правой кнопкой мыши и увидеть следующее:
Это означает, что snv успешно установлен!
2: файл проекта оформления заказа.
Создайте новый или войдите в каталог (например, qianduan1), щелкните правой кнопкой мыши –> Svn Checkout –>
Я могу получить URL-адрес с сервера SVN. Щелкните правой кнопкой мыши, чтобы создать новый файл в разделе myRepositories.
Файл qianduan будет создан, а затем щелкните правой кнопкой мыши, как показано ниже. –> копировать
Вот и все.
Вставьте скопированный URL-адрес репозитория, как показано ниже:
После нажатия кнопки [ОК] вы можете получить его следующим образом:
Как показано ниже:
Что следует отметить:
Скрытый каталог .svn записывает две ключевые части информации: базовую версию рабочего файла и временную метку последнего обновления локальной копии. Не изменяйте и не удаляйте вручную этот скрытый каталог .svn и файлы внутри него!!, иначе это произойдет. Причина: Ваша локальная рабочая копия (статическое представление) уничтожена и больше не может использоваться.
1) Знакомство со значком TortoiseSVN
Только что извлеченная рабочая копия перезагружается с зеленой галочкой, указывающей, что Subversion находится в работоспособном состоянии.
После того, как вы начнете редактировать файл, его статус изменится на «Изменено», а значок перезагрузки изменится на красный восклицательный знак. Таким образом, вы можете легко увидеть, какие файлы были изменены с момента последнего обновления рабочей копии и нуждаются в фиксации.
Если в процессе отправки возникнет конфликт, значок превратится в желтый восклицательный знак.
Знак плюс говорит о том, что файл или каталог планируется добавить в систему контроля версий.
2) Основные операции клиента TortoiseSVN:
1. Оформление заказа через SVN
Щелкните правой кнопкой мыши папку или каталог –> Выберите оформление заказа SVN, как показано на рисунке ниже.
После нажатия введите адрес каталога репозитория в поле URL-адрес репозитория всплывающего окна, а затем нажмите «ОК», как показано ниже.
Снова После нажатия кнопки ОК,Как показано ниже:
Введите имя пользователя и пароль во всплывающем диалоговом окне. После успешной проверки файл проекта начнет загружаться с удаленного сервера в локальный рабочий каталог.
После нажатия кнопки «ОК» приобретение будет завершено, как показано на рисунке ниже:
2. Добавить
В файле тестового проекта создайте новый файл b.txt и отправьте его в репозиторий двумя следующими способами:
1. Сначала упомяните его в списке изменений, затем зафиксируйте его в репозитории конфигурации, выберите новый файл, щелкните правой кнопкой мыши меню SVN и выполните операцию «Добавить», чтобы отправить его в «список изменений», затем щелкните правой кнопкой мыши меню SVN. и выполните «SVN Commit», чтобы отправить его в репозиторий.
2. Вместо отправки его в список изменений непосредственно зафиксируйте его в библиотеке конфигурации, выберите файл и щелкните правой кнопкой мыши меню svn, чтобы выполнить операцию «SVN Commit».
3. Удалить
Если удаленный файл не был включен в репозиторий, вы можете напрямую использовать операцию удаления операционной системы, чтобы удалить файл.
Если удаленный файл был добавлен в репозиторий, метод удаления следующий:
Используйте операцию удаления операционной системы, чтобы удалить файл, затем выберите родительский каталог удаленного файла, щелкните правой кнопкой мыши меню svn и выполните «SVN Commit", выберите удаленный файл в списке изменений. Как показано ниже:
4. Переименовать
Измените имя файла, выберите файл или папку, которые необходимо переименовать, затем щелкните правой кнопкой мыши «TortoiseSVNàRename», введите новое имя во всплывающем диалоговом окне, нажмите кнопку «ОК» и передайте измененный файл или папку. через «SVN Commit» на сервер SVN.
5. Возврат SVN
Щелкните правой кнопкой мыши файл или папку, которые вы хотите вернуть, выберите «Обновить до возврата...» во всплывающем меню TortoiseSVN, и появится следующее окно:
Например, если мы хотим откатиться на 10-ю версию, нам нужно всего лишь заполнить соответствующий номер версии в Revision, а затем нажать ок Вот и все.
6. Проверьте наличие изменений
Эта функция может показать вам, какие изменения вы внесли, но еще не были отправлены. Эта функция может видеть не только изменения в файлах, но и все изменения, включая добавление файлов или каталогов, удаление файлов или каталогов, перемещение файлов или каталогов. и т. д., если вы нажмете, чтобы проверить репозиторий, вы также сможете увидеть изменения в репозитории, то есть какие изменения файлов были отправлены другими и не были обновлены локально, а именно:
7. Обновление СВН
Чтобы обновить локальный код в соответствии с последней версией на сервере SVN, просто щелкните правой кнопкой мыши папку, которую необходимо обновить, или щелкните правой кнопкой мыши пустое место под файлом и выберите «Обновление SVN» (чтобы получить содержимое в указанной версии, щелкните правой кнопкой мыши, чтобы вызвать меню SVN «Обновить до версии»), вот и все.
7.1 Как разрешить конфликтующие файлы
Для каждого конфликтующего файла Subversion помещает в ваш каталог три файла: следующим образом:
Почему возникает конфликтный код? Причина очень проста: разные люди одновременно изменили одно и то же место в одном и том же файле. В этот раз он отправил его, но я не отправил его, поэтому я не смог его отправить. необходимо сначала обновить его, а затем отправить, тогда в случае возникновения конфликта будут созданы три вышеуказанных файла.
Решение заключается в следующем:
Сначала мы можем посмотреть на код 1.txt следующим образом:
<<<<<<< .mine
aaaasdf11222333 dderderder
=======
b>>>>>>> .r5
Потом я удалил лишний код и 1.txt стал таким
aaaasdf11222333 dderderder
Отправьте, но все равно не можете отправить, как показано ниже:
Почему? Поскольку в результате конфликта будут созданы три вышеуказанных файла, он определенно не будет отправлен, если эти три файла существуют. Коды и пояснения к этим трем файлам следующие:
aaaasdf11222333 dderderder
2. 1.txt.r4 — файл локальной версии до конфликта.
Содержимое следующее: aaaasdf11222333
3. 1.txt.r5 — это версия, представленная другими до вас.
Содержание следующее: б
в,<<<<<<<<.mine …..=======Код между вами — ваш собственный,и======……>>>>>>>.r5Это та часть кода, которая конфликтует с вами.
Таким образом, нетрудно понять, почему происходят такие странные вещи, как конфликты. Поскольку вы изменяете один и тот же фрагмент кода, конфликты, конечно, будут возникать.
Решение заключается в следующем:
<<<<<<< .mine
6666666666666600000
=======
66666666666aaaaaaaaaa666
>>>>>>> .r16 Сказал раньше <<<<<<< .mine …… =======
Код между... — это код, который я изменил до возникновения конфликтов.
======= ………>>>>>>> .r16 Код посередине... это код, конфликтующий между мной и другими. Как вы можете видеть из кода выше. аааааааа добавил мой коллега ,00000 было добавлено после меня.
После нажатия кнопки «ОК» вы увидите, что остальные три файла автоматически удаляются, а код 1.txt становится следующим кодом: 66666666666аааааааа666 То есть код, отправленный пользователем a. Код, который я обновил сам, необходимо скопировать и отправить самостоятельно.
Выберите файл->Щелкните правой кнопкой мышиEditconficts:这种方法需要冲突双方经过协商之后将代码更改统一之后Снова提交。不仅解决了冲突и且还保证了代码是正确的,Потому что представлен код только одной стороны.
Как показано на рисунке выше, красная часть — это конфликтующий код: их — это последний код на текущей стороне сервера, «Моя» — измененный код, а «Слияние» — объединенный код. Нажмите на красный цвет, щелкните правой кнопкой мыши и выберите: использовать этот текстовый блок, чтобы использовать эту часть кода в качестве объединенного кода.
Далее поговорим о ситуации, когда важный код перезаписывается из-за конфликтов. Если при возникновении конфликта будут приняты неправильные меры, часть кода может быть потеряна. При желании также легко восстановить предыдущий код.
Выберите файл->Щелкните правой кнопкой мыши选择show В журнале вы можете увидеть все ранее отправленные версии. Найдите версию, которую хотите восстановить, щелкните правой кнопкой мыши и выберите «Отменить». to this version Его можно восстановить.
Зафиксировать SVN
Отправка Svn предназначена для отправки изменений, внесенных в рабочую область, включая изменение содержимого файлов, добавление, удаление, присвоение имен, перемещение и другие операции с файлами или каталогами. Как показано ниже:
8. Показать журнал
С помощью этой функции вы можете узнать, кто, когда и какие операции выполнялись с файлами в этом каталоге. показано ниже:
9. Просмотр репозитория (Репо-браузер)
Эта функция используется для просмотра базы данных, которую необходимо просмотреть. Щелкните правой кнопкой мыши локальную папку, выберите TortoiseSVNàRepo-browser, введите адрес базы данных во всплывающем диалоговом окне, а затем введите имя пользователя и пароль, чтобы просмотреть то, что вы хотите просмотреть. нужно просмотреть содержимое репозитория, здесь же можно увидеть, кто заблокировал эти файлы, как. показано ниже:
Третье: создавайте филиалы и объединяйте взаимные операции.
Зачем нам нужно создавать ветки и объединять в проекте?
Например, все файлы моего текущего проекта размещены в магистрали. Из-за изменений в требованиях необходимо добавить новые требования, но нам все равно нужно продолжать разработку в магистрали. Здесь мы можем создать новую ветку для добавления. новые требования. По требованиям продолжить разработку на транк, а когда проблем с кодом на ветке не будет, мерить его в транк.
Самая большая цель создания филиала — развиваться параллельно с основной линией, не влияя на развитие основной линии.
Как это сделать?
Предположим, я создаю новую папку test локально и есть две папки: «trun» (для хранения кода в «магистрали») и «branch» (для хранения кода в ветке), как показано ниже:
Первое: сначала извлеките код на багажнике.
Нажмите на багажник –> правая кнопка мыши –> Нажмите на СВН Checkout –> Появится диалоговое окно, как показано ниже:
Приведенный выше URL-адрес получен с сервера VisualSVN Server, как показано ниже:
Непосредственно щелкните правой кнопкой мыши qianduan3 –> Copy URL to Clipboard Вот и все.
Проект qianduan3 имеет следующие файлы, как показано на рисунке ниже:
Наконец, нажав кнопку оформления заказа выше, вы можете получить код с удаленного сервера в магистрали, как показано ниже:
Второе: создать новую ветку
Шаги по созданию ветки из магистрали (на магистрали) следующие:
1. Правый клик по багажнику –> branch/Tag Как показано ниже:
Во всплывающем диалоговом окне Как показано ниже:
После нажатия кнопки ОК, вот и все VisualSVN NewBranch добавляется на сервер Serval и копируется из файла на сервере qianduan3 выше, как показано ниже:
Теперь мы можем еще раз взглянуть на папку локальной ветки. Теперь я перехожу непосредственно к файлу ветки и щелкаю правой кнопкой мыши. –> В Chenkout вы можете извлечь все файлы из newBranch, как показано ниже:
Нажмите кнопку «ОК», чтобы извлечь файл, как показано на рисунке ниже:
В настоящее время ветка установлена на стороне сервера svn и не обновлялась локально. Папка локальной ветки. Щелкните правой кнопкой мыши–> Просто обновите, и вы сможете обновить код ветки, как показано ниже:
Четвертое: объединить ветки со стволом
Например, теперь я добавляю файл 3.txt в ветку ветки и затем отправляю его, как показано ниже:
Теперь я хочу объединить код 3.txt из ветки в транк. Как мне теперь его объединить? Шаги следующие:
1. Вернитесь в папку багажника, которую мы только что создали, правая. кнопка мышиэта папка –> TortoiseSVN –> Merge Как показано ниже:
Во всплывающем окне, как показано ниже:
затем Нажмите【Далее】Следующий шаг,Как показано ниже:
Затем [Далее] следующий шаг, как показано ниже:
Вы можете видеть, что в основной ствол добавляется дополнительный файл 3.txt, который слит из ветки.
Пятое: объединить ствол с веткой.
Если в магистрали есть какие-то обновления, например обновления jar-пакетов и т. д., их необходимо обновить в ветках. Как это сделать? Например, теперь я создаю новый файл 4.txt в магистрали следующим образом:
Каталоги в моей текущей ветке следующие:
Теперь хочу слить 4.txt на транк в ветку Как это сделать?
Шаги следующие, они по-прежнему аналогичны той операции, которую мы проделали сейчас.
1. Щелкаем ветку по ветке –> Щелкните правой кнопкой мыши TortoiseSVN. –> Merge Как показано ниже:
После появления нового окна, как показано ниже:
затем Нажмите【Далее】Следующий шаг,Как показано ниже:
Перейдите к следующему шагу, как показано ниже:
Наконец, слиться напрямую,Вы можете видеть, что ветка также имеет файл 4.txt в стволе.,То есть,Также возможно объединение ствола в ветку.,Как показано ниже:
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/154808.html Исходная ссылка: https://javaforall.cn