У меня есть веб-сайт, который я хочу развернуть в клиентских средах DEV и UAT, этот сайт является частью ртутного репозитория - он находится в папке «Веб-сайт» на том же уровне, что и папка .hg. Я знаю, что могу протолкнуть весь репозиторий, но предпочитаю нажимать только папку веб-сайта, чтобы у клиента не было других файлов и папок.
Репо выглядит так:
- Project root
- .hg
- База данных (это используется в системе управления исходным кодом SQL)
- Документация (Все спецификации, PDF-файлы, иллюстрации и т. Д.)
- Lib (сторонние библиотеки DLL до Nuget)
- пакеты (материалы Nuget)
- Веб-сайт (это единственная область, которую я хочу развернуть)
- .hgignore
- Project.sln
Изменить: серверы клиентов не подключены напрямую к Интернету, мой доступ к ним осуществляется через VPN, а затем RDP. В настоящее время для развертывания любых изменений мне нужно заархивировать сайт, поместить его на общий ftp-сервер и подождать до 3 дней, пока файлы будут скопированы на серверы. Правила настроены, поэтому я могу использовать Mercurial через это соединение.
Изменить 2. Мне удалось создать вложенное репо из папки веб-сайта, забыв папку веб-сайта и все ее содержимое, зафиксировав изменение, затем вернув файлы, создав репо и повторив файл .hgsub. Локально это работает для меня, я могу клонировать из репозитория веб-сайта, не получая никаких дополнительных папок. Однако мне не удалось использовать эту версию репо, даже если я повторю процесс на нашем сервере репо. Когда я пытаюсь клонировать размещенную версию до моей локальной рабочей копии, я получаю ошибку 404, но я могу клонировать размещенную версию на хост-сервере.
Я был бы признателен за несколько пошаговых инструкций (руководство для чайников, если хотите) о том, как достичь моей цели; который должен иметь возможность отправлять только папку веб-сайта на серверы клиентов. Основная копия репо находится на нашем сервере репо, у меня есть локальный клон, и мне нужно иметь возможность выталкивать версии из моей копии.
Изменить 3. Оказалось, что у меня возникла проблема с преобразованием папки в субрепо, как описано в http://mercurial.aragost.com/kick-start/en/subrepositories/#преобразованиепапкивсубрепозиторий заключалось в том, что команда convert в версиях после 2.1.0 не работает и по-прежнему не работает в 2.3.1. После того, как я понял это и откатился к этой версии TortoiseHg, я смог преобразовать папку в субрепо, в корне репо у меня есть .hgsub, в котором указано Website = Website. Я смог работать с этим локально, зафиксировать все репо, подрепо, клонировать либо полное репо, либо подрепо (это то, что я хочу), однако я не могу заставить это работать из нашего основного репо сервер.
Я заархивировал все это и отправил по ftp на наш удаленный главный сервер репо, а затем настроил его, чтобы я мог клонировать с него. Непосредственно на сервере это работает нормально (hg clone --verbose - C: \ Repositories \ EM.), Однако, когда я пытаюсь клонировать с сервера на мою локальную машину разработки с помощью (hg clone --verbose - https://myserver.com/hg/EM/.) происходит сбой "Ошибка HTTP: 404 (не найдено ) ".
requesting all changes
adding changesets
adding manifests
adding file changes
added 628 changesets with 6002 changes to 4326 files
updating to branch default
resolving manifests
calling hook preupdate.eol: <function preupdate at 0x00000000035204A8>
getting .hgignore
getting .hgsub
getting .hgsubstate
HTTP Error: 404 (Not Found)
[command returned code 255 Fri Apr 20 10:51:23 2012]
Не знаю, в чем проблема, файлы там, так почему же 404?