Как выполнить коммит в Sourceforge с использованием Mercurial

#mercurial #sourceforge

#mercurial #sourceforge

Вопрос:

У меня есть каталог с именем «Proyectos» с кодом Django внутри.

Мне нужно выполнить коммит проекта в Source Forge, чтобы мой учитель мог «загрузить» весь код на свой компьютер.

Я думаю, мне следует использовать некоторые из этих адресов:

 http://phone-apps-djan.hg.sourceforge.net:8000/hgroot/phone-apps-djan/phone-apps-djan (read-only) 
 ssh://lucasab@phone-apps-djan.hg.sourceforge.net/hgroot/phone-apps-djan/phone-apps-djan (read/write)
  

Я сделал это на Kubuntu:

 lucas@lucas-Satellite-L305:~/Desarrollo/Python/Django/Proyectos$ hg clone http://phone-apps-djan.hg.sourceforge.net:8000/hgroot/phone-apps-djan/django-mercurial
  

но создается только папка.

Я новичок и не нашел, как это сделать. Я следовал некоторым руководствам, но я не могу понять многие концепции.

Я был бы признателен за некоторую помощь в этом, пожалуйста.

Заранее спасибо.

Ответ №1:

У вас есть два разных адреса для доступа к вашему репозиторию Mercurial в sourceforge :

  1. http://phone-apps-djan.hg.sourceforge.net:8000/hgroot/phone-apps-djan/phone-apps-djan (read-only) как сказано после адреса, этот доступен только для чтения, каждый может клонировать ваш проект, чтобы они могли видеть исходные тексты и компилировать / использовать его. Аутентификация отсутствует. Когда вы используете этот адрес, Mercurial использует протокол HTTP для извлечения изменений.
  2. ssh://lucasab@phone-apps-djan.hg.sourceforge.net/hgroot/phone-apps-djan/phone-apps-djan (read/write) вы можете выполнить запись в свой репозиторий по этому адресу, но вы должны аутентифицироваться (вам нужно будет ввести свой пароль), и Mercurial использует протокол SSH для этого. Вы также можете увидеть свое имя пользователя в sourceforge в адресе.

Прежде всего, вы должны создать еще один клон вашего проекта со вторым адресом, иначе вы не сможете выполнить коммит. Просто cd в новом каталоге и выполните :

 hg clone ssh://lucasab@phone-apps-djan.hg.sourceforge.net/hgroot/phone-apps-djan/phone-apps-djan
  

Вам должно быть предложено ввести пароль вашей учетной записи sourceforge.

Затем вы можете создать компакт-диск во вновь созданном каталоге, внести все свои изменения, добавить файлы и т.д. Когда вы закончите, вы можете сделать hg commit , а затем hg push опубликовать изменение в своем репозитории. При добавлении нового файла в каталог не забудьте сделать hg add или hg addremove .

Вы можете найти действительно хорошее и простое руководство по mercurial в Hg Init, вам следует прочитать его и попытаться понять рабочий процесс, прежде чем что-либо делать в sourceforge.

Удачи с вашим проектом 🙂

Ответ №2:

Большое спасибо Робу Соберсу и Кртеку за их ответы. Я, наконец, смог добавить все свои файлы в SourceForge. Я следовал их инструкциям, и все прошло нормально, хотя у меня были некоторые незначительные осложнения.

Это пошаговый ответ на мои вопросы:

Над папкой «Proyectos» я сделал:

  • hg clone ssh://lucasab@phone-apps-djan.hg.sourceforge.net/hgroot/phone-apps-djan/phone-apps-djan и ввел пароль для моей учетной записи SourceForge. Была создана папка «phone-apps-djan».

  • hg add после того, как я cd вошел phone-apps-djan в и скопировал все файлы моего проекта в эту папку.

  • hg commit . На этом этапе произошла ошибка: abort: no username supplied (see "hg help config") . Итак, я создал файл с именем .hgrc в моем домашнем каталоге и добавил эти строки:

     [ui]
    username = my username at sourceforce <the mail address I supplied when registering>
    verbose = True
      

Затем я повторно вошел hg commit .

  • hg push . Было отображено следующее сообщение об ошибке: abort: repository default-push not found! . Затем я просто отредактировал .файл hgrc, созданный на последнем шаге и добавленный:

     [paths]
    default = ssh://lucasab@phone-apps-djan.hg.sourceforge.net/hgroot/phone-apps-djan/phone-apps-dja
      

Я действительно не понимаю, что здесь произошло, потому что .hg каталог в моем репозитории уже содержит hgrc файл с этим путем :(. В любом случае, я сделал hg push снова.

И это было все.

Ответ №3:

Выполняем hg clone загрузку репозитория на ваш компьютер. Теперь, чтобы обновить ваш рабочий каталог (чтобы вы могли работать с файлами), введите hg update .

Когда вы закончите вносить изменения, введите hg commit , чтобы записать их. Когда вы будете готовы загрузить свои изменения в SourceForge, введите hg push http://path/to/repo . Убедитесь, что вы нажимаете на правильный репозиторий!

Комментарии:

1. Спасибо за ответ, Роб. Вот что я делаю: сначала я вручную копирую все файлы из уже существующего проекта в новую папку с именем «Proyectos», затем загружаю компакт-диск в эту папку. После этого я делаю «hg commit», а затем «hg push phone-apps-djan.hg.sourceforge.net:8000/hgroot/phone-apps-djan / … «, чтобы загрузить все файлы в SourceForge. Но отображается это сообщение: изменений не найдено. Итак, я думаю, что я делаю что-то неправильно, потому что кажется, что файлы не загружаются… пожалуйста, помогите еще раз. Приветствия!.

2. hg push не сработает, Лукас клонировал репозиторий с адресом, доступным только для чтения, SF отклонит любое входящее изменение.

3. @Krtek это должно работать до тех пор, пока он указывает путь назначения при нажатии и не использует default-push путь, который будет адресом только для чтения.

4. да, но тогда вам следовало бы дать небольшое объяснение двум адресам, и всегда проще использовать URL для чтения / записи в качестве пути по умолчанию. Я не думаю, что Лукас пока имеет представление о Mercurial, боюсь, ваш ответ ему не сильно поможет. @Lucas вы добавили свой файл в рабочий каталог? вы можете увидеть мой ответ по ссылке на хороший учебник.

5. @Lucas После того, как вы вручную скопируете свои файлы в «Proyectos», поместите компакт-диск в папку и введите, hg add затем введите hg commit затем hg push