Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.43.2 → 2.51.0 no changes
-
2.43.1
2024-02-09
- 2.35.1 → 2.43.0 no changes
-
2.35.0
2022-01-24
- 2.11.4 → 2.34.8 no changes
-
2.10.5
2017-09-22
-
2.9.5
2017-07-30
- 2.3.10 → 2.8.6 no changes
-
2.2.3
2015-09-04
- 2.1.4 no changes
-
2.0.5
2014-12-17
СИНОПСИС
git cvsimport [-o <branch-for-HEAD>] [-h] [-v] [-d <CVSROOT>] [-A <author-conv-file>] [-p <options-for-cvsps>] [-P <file>] [-C <git-repository>] [-z <fuzz>] [-i] [-k] [-u] [-s <subst>] [-a] [-m] [-M <regex>] [-S <regex>] [-L <commit-limit>] [-r <remote>] [-R] [<CVS-module>]
ОПИС
ПОПЕРЕДЖЕННЯ: git
cvsimport
використовує cvsps версії 2, яка вважається застарілою; вона не працює з cvsps версії 3 та пізніших. Якщо ви виконуєте одноразовий імпорт репозиторію CVS, спробуйте скористатися cvs2git або cvs-fast-export.
Імпортує репозиторій CVS у Git. Він або створить новий репозиторій, або поступово імпортує дані у існуючий.
Розділення журналу CVS на набори патчів здійснюється за допомогою «cvsps». Потрібна щонайменше версія 2.1.
ПОПЕРЕДЖЕННЯ: у певних ситуаціях імпорт призводить до неправильних результатів. Будь ласка, дивіться розділ ПРОБЛЕМИ для отримання додаткової інформації.
Ви ніколи не повинні самостійно виконувати будь-яку роботу з гілками, створеними за допомогою git cvsimport. За замовчуванням початковий імпорт створить та заповнить гілку "master" з головної гілки репозиторію CVS, з якою ви можете вільно працювати; після цього вам потрібно самостійно виконати інкрементальний імпорт git merge або будь-які гілки CVS. Бажано вказати іменований віддалений об’єкт за допомогою -r, щоб відокремити та захистити вхідні гілки.
Якщо ви маєте намір створити спільний публічний репозиторій, який усі розробники зможуть читати/записувати, або якщо ви хочете використовувати git-cvsserver[1], тоді, ймовірно, вам варто створити чистий клон імпортованого репозиторію та використовувати цей клон як спільний репозиторій. Див. gitcvs-migration[7].
ОПЦІЇ
- -v
-
Детальність: дозвольте «cvsimport» повідомляти про свої дії.
- -d <CVSROOT>
-
Кореневий каталог архіву CVS. Може бути локальним (простий шлях) або віддаленим; наразі підтримуються лише методи доступу :local:, :ext: та :pserver:. Якщо не вказано, git cvsimport спробує прочитати його з
CVS/Root
. Якщо такого файлу не існує, він перевіряє наявність змінної середовищаCVSROOT
. - <CVS-module>
-
Модуль CVS, який ви хочете імпортувати. Відносно до <CVSROOT>. Якщо не вказано, git cvsimport спробує прочитати його з
CVS/Repository
. - -C <target-dir>
-
Репозиторій Git для імпорту. Якщо каталог не існує, його буде створено. За замовчуванням використовується поточний каталог.
- -r <remote>
-
Віддалений Git для імпорту цього репозиторію CVS. Переміщує всі гілки CVS до remotes/<віддалений>/<гілка>, подібно до того, як «git clone» використовує «origin» за замовчуванням.
- -o <branch-for-HEAD>
-
Якщо віддалений з’єднувач не вказано (через -r), гілка
HEAD
з CVS імпортується до гілки origin у репозиторії Git, оскількиHEAD
вже має спеціальне значення для Git. Коли вказано віддалений з’єднувач, гілкаHEAD
називається remotes/<remote>/master, що відображає поведінку git clone. Використовуйте цю опцію, якщо ви хочете імпортувати в іншу гілку.Використовуйте -o master для продовження імпорту, який спочатку було виконано старою утилітою cvs2git.
- -i
-
Тільки імпорт: не виконувати вилучення після імпорту. Цей параметр гарантує, що робочий каталог та індекс залишаться недоторканими, і їх не буде створено, якщо вони не існують.
- -k
-
Ключові слова Kill: витягне файли з параметром -kk з архіву CVS, щоб уникнути шумних наборів змін. Настійно рекомендується, але за замовчуванням вимкнено для збереження сумісності з раніше імпортованими деревами.
- -u
-
Перетворити символи підкреслення в назвах тегів та гілок на крапки.
- -s <subst>
-
Замініть символ "/" в іменах гілок на <subst>
- -p <options-for-cvsps>
-
Додаткові опції для cvsps. Опції
-u
та -A є неявними та не повинні використовуватися тут.Якщо вам потрібно передати кілька параметрів, розділіть їх комою.
- -z <fuzz>
-
Передати коефіцієнт нечіткості позначки часу до cvsps у секундах. Якщо не встановлено, cvsps за замовчуванням має значення 300 секунд.
- -P <cvsps-output-file>
-
Замість виклику cvsps, зчитайте наданий вихідний файл cvsps. Корисно для налагодження або коли cvsps обробляється поза cvsimport.
- -m
-
Спробувати виявити злиття на основі повідомлення коміту. Ця опція вмикає регулярні вирази за замовчуванням, які намагаються отримати назву вихідної гілки з повідомлення коміту.
- -M <regex>
-
Спробуйте виявити злиття на основі повідомлення коміту за допомогою власного регулярного виразу. Його можна використовувати з
-m
, щоб також увімкнути регулярні вирази за замовчуванням. Ви повинні екранувати скісну риску.Регулярний вираз має фіксувати назву вихідної гілки в $1.
Цей параметр можна використовувати кілька разів для забезпечення кількох регулярних виразів виявлення.
- -S <regex>
-
Пропустити шляхи, що відповідають регулярному виразу.
- -a
-
Імпортуйте всі коміти, включаючи нещодавні. cvsimport за замовчуванням пропускає коміти, час яких менше 10 хвилин тому.
- -L <limit>
-
Обмеження кількості імпортованих комітів. Обхідний шлях для випадків, коли cvsimport призводить до витоку пам’яті.
- -A <author-conv-file>
-
CVS за замовчуванням використовує ім’я користувача Unix під час запису журналів комітів. Використання цієї опції та файлу author-conv зіставляє ім’я, записане в CVS, з іменем автора, електронною поштою та (необов’язково) часовим поясом:
exon=Andreas Ericsson <ae@op5.se> spawn=Simon Pawn <spawn@frog-pond.org> America/Chicago
Команда «git cvsimport» створить враження, що ці автори мали правильно налаштовані GIT_AUTHOR_NAME та GIT_AUTHOR_EMAIL з самого початку. Якщо вказано часовий пояс, до GIT_AUTHOR_DATE буде застосовано відповідне зміщення.
Для зручності ці дані зберігаються в
$GIT_DIR/cvs-authors
щоразу, коли надається параметр -A, і зчитуються з того ж файлу щоразу, коли виконується git cvsimport.Не рекомендується використовувати цю функцію, якщо ви маєте намір експортувати зміни назад до CVS пізніше за допомогою git cvsexportcommit.
- -R
-
Згенеруйте файл
$GIT_DIR/cvs-revisions
, що містить зіставлення номерів версій CVS з новоствореними ідентифікаторами комітів Git. Згенерований файл міститиме один рядок для кожної імпортованої пари (ім’я файлу, версія); кожен рядок виглядатиме такsrc/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7
Дані про редакцію додаються до файлу, якщо він вже існує, для використання під час інкрементального імпорту.
Ця опція може бути корисною, якщо у вас є номери версій CVS, що зберігаються в повідомленнях комітів, системах відстеження помилок, архівах електронної пошти тощо.
- -h
-
Вивести коротке повідомлення про використання та вийти.
ВИХІД
Якщо вказано -v
, скрипт повідомляє про свої дії.
В іншому випадку, успіх позначається Unix-стилем, тобто простим виходом з нульовим статусом виходу.
ПРОБЛЕМИ
Проблеми, пов’язані з часовими мітками:
-
Якщо часові позначки комітів у репозиторії CVS недостатньо стабільні для використання для впорядкування комітів, зміни можуть відображатися в неправильному порядку.
-
Якщо будь-які файли були імпортовані за допомогою cvs більше одного разу (наприклад, імпорт релізів кількох постачальників), то HEAD містить неправильний вміст.
-
Якщо порядок позначок часу різних файлів перетинає порядок редагувань у межах часового вікна відповідності комітів, порядок комітів може бути неправильним.
Проблеми, пов’язані з філіями:
-
Гілки, на яких не було зроблено жодних комітів, не імпортуються.
-
Усі файли з точки розгалуження додаються до гілки, навіть якщо вони ніколи не додавались у CVS.
-
Це стосується файлів, доданих до вихідної гілки після створення дочірньої гілки: якщо раніше на дочірній гілці не було зроблено жодного коміту, вони будуть помилково додані до дочірньої гілки в git.
Проблеми, пов’язані з тегами:
-
Кілька тегів в одній редакції не імпортуються.
Якщо ви підозрюєте, що будь-яка з цих проблем може стосуватися репозиторію, який ви хочете імпортувати, розгляньте можливість використання cvs2git:
-
cvs2git (part of cvs2svn),
https://subversion.apache.org/
GIT
Частина набору git[1]