Какой лучший способ начать проект в Mercurial, когда у вас уже есть файлы в проекте? - PullRequest
3 голосов
/ 09 июня 2011

Я начинаю с Mercurial. Я читаю ртутную книгу , но все еще есть вопрос.

Я начал свой проект месяц назад, и у меня там много файлов и каталогов. Теперь я хочу использовать Mercurial и создать себе учетную запись в bitbucket. Теперь я хочу настроить этот проект в Bitbucket. Как я могу добавить все эти файлы в репозиторий Bitbucket?

Это то, что я думал, я мог бы сделать: Я мог бы попытаться (1) клонировать пустое хранилище (из bitbucket) (1) скопировать все файлы в этот каталог, (3) выпустить «hg add» и после этого (4) зафиксировать.

Может быть, у вас есть лучший способ сделать это.

Спасибо!

(1)

hg clone https://ME@bitbucket.org/ME/myproject

(2)

cp existing-project/* myproject/
cd myproject

(3)

hg add
* * Тысяча двадцать-одиной (4) * * тысяча двадцать-дв
hg commit -u ME

(5)

hg push (i think i have to do this to make the changes visible)

Ответы [ 2 ]

9 голосов
/ 09 июня 2011

Вы можете просто hg init, hg add и hg commit в исходной папке проекта, а затем отредактировать ~/project/.hg/hgrc, чтобы добавить расположение push-репозитория по умолчанию (вы можете клонировать его во временную папку вполучите созданный для вас hgrc, который вы можете скопировать в свой проект, даже без необходимости RTFM для правильного синтаксиса.)

Из-за распределенной природы mercurial эта запись hgrc является единственной вещью, относящейся к вашему локальномурепо в битбакет вообще;Вы можете даже hg push <a href="https://ME@bitbucket.org/ME/myproject">https://ME@bitbucket.org/ME/myproject</a>, не делая ссылку где-либо явной.Каждая копия хранилища полностью самодостаточна.

3 голосов
/ 09 июня 2011

Ответ Вубла в порядке, но чего-то не хватает, поэтому я дополняю здесь.

Когда вы впервые создаете пустой репозиторий (с помощью hg init или создаете в битбакете), у него нет идентификатора.Однако, как только у него есть какие-либо наборы изменений, у него есть удостоверение, и вы можете использовать только push / pull между ним и репозиториями, которые разделяют это удостоверение.

Если бы у вас было 2 хранилища A и B для отдельных проектов, вы бы нене могу толкать / тянуть между ними.Создав новый репозиторий в bitbucket, вы можете переместить наборы изменений из A или B в этот репозиторий один раз .Если вы отправляете изменения из B в первый раз, репозиторий bitbucket теперь связан с B. После этого вы не можете вставлять в него наборы изменений из A или вытягивать из него наборы изменений.

Поэтому, когда Вубл говорит,

... эта запись в hgrc - единственная вещь, которая касается вашего локального репо с битбакетом вообще;

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

...