Це команда cvsconvert, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
cvsconvert - виконайте перетворення Git і перевірте оригінал CVS
СИНТАКСИС
cvsconvert [-v] [-n] [-p] [-k expandspec] [репо | репо/модуль]
ОПИС
cvsconvert виконує перетворення репозиторію CVS у Git і перевіряє вміст дерева
у всіх підказках і тегах гілок, щоб переконатися, що історії однакові.
(Виняток: синтетичні гілки gitspace під назвою *-UNNAMED-BRANCH, створені для збирання
бездомні фіксації CVS не перевіряються. Ви побачите попередження, коли з’явиться одне з них
пропущено.)
Єдиним аргументом має бути шлях до каталогу, що містить репозиторій або модуль CVS.
Якщо це каталог верхнього рівня CVS і є лише один модуль під потрібним модулем
не вказано.
Перетворення Git залишається в каталозі, названому за аргументом репо, із суфіксом
"-git".
Звичайна поведінка полягає в тому, що програма повідомляє про кожну гілку та тег, говорячи «дерева збігаються
як очікувалося". Існує два види звіту про проблему:
"файл маніфести НЕ матч": Вказує, що версії CVS і Git цієї версії в
історія містить деякі імена файлів, які не поєднуються один з одним. (Git і CVS
Файли з шаблоном ігнорування ігноруються і не ініціюють це повідомлення.) Коли це повідомлення
відбувається, загальні файли все ще перевіряються на рівність.
"%s та %s він має інший": Два відповідні файли CVS і Git не порівнюються між собою. А
Далі буде перелік відмінностей.
ВИРІШЕННЯ ПРОБЛЕМ
Існує два види несерйозних збоїв у перетворенні: невідповідність вмісту файлу через
розширені поля ключових слів у головних, а файли, видалені в CVS, які зустрічаються лише в
маніфесті gitspace, пов’язані з тегами.
Ви можете легко виявити невідповідність вмісту через розширення ключових слів. Вони вироблятимуть
однорядкові відмінності рядків, що містять знаки долара навколо тексту ключового слова. Тому що
двійкові файли можуть бути пошкоджені розширенням ключових слів, за замовчуванням працює cvs-fast-export
як режим cvs -kb і не розширює власне ключове слово. Таким чином, ви повинні ніколи побачити
такі невідповідності якщо ви не передали параметр -k.
Однак ви можете передати -kk, якщо (a) ви вважаєте, що головні файли CVS можуть міститись
розширили поля ключових слів, але не хочете очищати їх вручну, і (б) ви впевнені
ваше сховище не містить двійкових файлів, які можуть невірно відповідати ключовому слову RCS/CVS. Якщо ви
помиляються щодо припущення (b) ви отримаєте попереджувальні повідомлення про невідповідності вмісту
у двійкових файлах.
Явні невідповідності тегів найімовірніше виникають у файлах, які були видалені в CVS
але зберігається під пізнішими тегами в перетворенні Git. Ви можете покластися на те, що відбувається
якщо під час пошуку імені шляху в репозиторії CVS ви знайдете його на горищі
каталог.
Ці фальшиві звіти виникають через те, що CVS не завжди зберігає достатньо інформації
надійно відстежує видалення та дещо нестабільне в обробці редакцій «мертвого» стану.
Щоб ваші репозитории CVS і git ідеально збігалися, вам може знадобитися додати до файлів видалення видалення
перетворення - або, що більш імовірно, переміщення існуючих назад уздовж їхніх гілок до комітів
які передували тегу gitspace - using репозитор(1).
Явні невідповідності в іншому напрямку (присутні в CVS, відсутні в gitspace) повинні
ніколи не трапляються. Якщо так, надішліть звіт про помилку.
Будь-який інший тип відповідності вмісту або маніфесту - але особливо будь-який на головній гілці - є
погані новини і вказують на серйозні дефекти сховища або помилку в cvs-fast-export
(або, можливо, обидва). Будь-яку подібну ситуацію слід повідомити як помилку.
Помилки конверсії з непропорційною ймовірністю трапляються на старих, гілках або тегах
до того, як CVS мав надійні коміти. Часто найефективнішим засобом є просто видалення
непотрібні гілки та бирки; репозитор(1) робить це легко.
Якщо вам потрібно повідомити про помилку, відвідайте веб-сайт проекту, щоб дізнатися про це
процедура повідомлення про помилки. Під час підготовки звіту ви можете зробити певні дії
зробити більш імовірним швидке вирішення проблеми.
ВАРІАНТИ
-p
Увімкнути звіти про прогрес із cvs-fast-export під час його виконання.
-k
Передайте специфікацію розширення ключового слова cvs-швидкий експорт(1) і резюме(1).
-n
Тільки тестуйте, не зберігайте перетворення Git після видачі діагностики.
-v
Багатослівний. Показувати підкоманди під час їх виконання та різні повідомлення про налагодження.
-q
Скажіть cvs-fast-export, щоб він працював тихо.
ОБМЕЖЕННЯ
Ця програма не впорається з витонченістю, якщо повинні бути нелегальні для Git теги CVS
продезінфікований під час конверсії.
Через те, як ця програма працює навколо вимоги CVS щодо каталогу CVSROOT, це
у такому випадку вимагатиме дозволу на запис до каталогу в каталозі сховища -
інакше він припиниться після повідомлення CVS "не вдалося отримати блокування каталогу в репозиторії". The
вміст сховища не змінюється.
Програмі потрібна опція cvs -R для доступу до сховища лише для читання. Тому буде
невдало з версіями GNU CVS, старішими за 1.12.1 (2005), які не мають цієї опції.
ЗВІТНІСТЬ БУГИ
Повідомте про помилки Еріку С. Реймонду[захищено електронною поштою]>. Сторінка проекту знаходиться за адресою
http://catb.org/~esr/cvs-fast-export
Використовуйте cvsconvert онлайн за допомогою служб onworks.net