Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 10
resurection Сообщение 20/03/2011 21:20 Копия темы
Mercurial, как сделать экспорт изменённых файлов? Когда была 125-ая ревизия, я залил проект на сервер (первый релиз проекта). Теперь наколбасил второй релиз (+30 ревизий) и надо обновить проект на серваке.

Раньше в СВНе я сравнивал ревизии 125-155 и делал экспорт всех изменённых файлов в отдельную директорию, которую можно было залить на ФТП или закатать в архив и отправить заказчику. Но как это сделать в Меркуриале?

Нашёл команду "hg diff --stat -r 125:155" – она выводит список изменённых файлов (сравнивает две ревизии). Но как эти файлы сохранить в отдельную диру с сохранением структуры?
 
Ну и вообще интересно, как Вы поддерживаете проект на удалённом сервере в актуальном состоянии? Знаю, что на сервере можно поднять локальную копию и обновляться через (d)CVS. Но у меня загвоздка с таким подходом. В папке с проектом под контролем находятся: макеты, бекапы, папка upload и несколько динамически изменяемых файлов – всё это не должно синхронизироваться с сервером. Т.е. при апдейте на рабочий сервак надо как-то настраивать исключения. Нагуглил для этого capistrano, но его нет под винду :(
nazavrik Сообщение 21/03/2011 06:52 Копия темы
Отправка изменений происходит с помощью команды push.

Вот отличная серия статей на использование Mercuriala: habrahabr.ru/blogs/develo...

Там несколько частей, подробно всё написано, как поддерживать и пр.
abbat Сообщение 21/03/2011 07:42 Копия темы
Для того, чтобы получить только дельту изменений для отправки, используется hg bundle между двумя ревизиями. Так же, следует учитывать, что в hg ревизии с номерами (аналоги svn-овских) актуальны только в локальном репозитории и совершенно не должны совпадать с удаленным – т.е. 125 ревизия локально и 125-я ревизия в удаленном репозитории совершенно не обязаны быть одними и теми же ревизиями. Дабы избежать путаницы, необходимо использовать имена ревизий в терминах hg – это хэши.
resurection Сообщение 21/03/2011 12:45 Копия темы
Ещё раз перечитал статью. Хотел написать коммент, что там не то. Но пока писал, пришла идея, как организовать репу на боевом сервере через бранчи и эта репа синхронизирует всё кроме некоторых папок (макетов, бекапов, конфигов и т.д...).  Протестил – заработало! :) И не надо никаких деплоев настраивать.

Ещё одно подтверждение, что меркуриал – это круто.
resurection Сообщение 21/03/2011 13:40 Копия темы
hg bundle создаёт один файл со списком изменений. Что с ним делать – я не знаю. На удалённом боевом серваке нет ни меркуриала, ни SSH доступа, есть только FTP. А иногда даже ФТП нет и тогда я отправляю заказчику архив с файлами, которые надо перезалить.

Ещё раз попробую объяснить, что мне надо. Допустим, в 126-ой ревизии я изменил файлы /templates/header.tpl + footer.tpl. Затем в 127-ой ревизии я изменил /libs/my.class.php. И вот теперь мне надо экспортнуть изменённые файлы. Т.е. сделать что-то вроде "export -r 125:127 /tmp/update-127/". В результате должна получится папка "update-127" содержащая файлы:
libs/my.class.php
templates/header.tpl
templates/footer.tpl

Пока я нашёл только команду "hg diff --stat -r 125:127" – она выводит список изменённых файлов. Но как их сохранить во временную папку "update-127" я не нашёл?
abbat Сообщение 21/03/2011 15:58 Копия темы
Понятно. Штатных средств для этого нет, т.к. это не совсем соответствует идеологии hg – он оперирует наборами изменений, а не файлами. Можно, наверное, взять из лога список файлов и скопировать их руками.
resurection Сообщение 21/03/2011 16:12 Копия темы
Понятно, что думает он изменениями, однако команда "hg diff --stat -r 125:127" выдаёт то что нужно. Осталось только сохранить. И я не вижу здесь никакого идиалогического противоречия. Иначе, как отправить заказчику архив с изменёнными файлами? Или как проапдейтить проект на ftp без ssh?

Выгружать руками конечно можно, если файлов 3. Но если их 50 – придётся писать свой скрипт. А их реально 50 и больше. Это же целый релиз.

А в ГИТе есть такая команда?
abbat Сообщение 21/03/2011 17:14 Копия темы
> Иначе, как отправить заказчику архив с изменёнными файлами?

hg bundle – у заказчика так же должна быть копия репозитория в которую развернется данный bundle – это принятый способ распространения изменений в hg, если нет прямой связи между репозиториями.

> Или как проапдейтить проект на ftp без ssh?

* Можно попробовать развернуть hg на самом хостинге (нужно, чтобы хостинг поддерживал cgi);
* Можно попробовать использовать ftpfs через FUSE (геморно, но возможно);
* Можно попробовать использовать расширение ftp самого hg – www.mercurial-scm.org/wik... (правда, оно не поддерживается и не рекомендуется к использованию);
* Использовать lftp, который синхронизирует локальный репозиторий с директорией на ftp;
* Ну и, наконец, можно отказаться от такого хостинга, потому что все нормальные хостинги дают доступ по SSH.

> А их реально 50 и больше. Это же целый релиз.

Например, hg archive дает архив файлов на определенную ревизию – его можно залить на сервер и сменить симлинк на актуальную версию. Некоторые хранят репозиторий непосредственно на сервере и делают hg up.

> А в ГИТе есть такая команда?

С уверенностью не могу сказать – слишком мало его использовал, но, поскольку он изначально *nix ориентированный, то думаю, что нет. Ибо *nix без ssh – это не *nix.

P.S. К слову, согласно манам, svn так же не умеет делать подобного.
resurection Сообщение 21/03/2011 21:29 Копия темы
Может быть не документировано, но в ТортойзСВН я такую возможность нашёл за 3 минуты методом тыка dev.web-fusion.ru/2011-03... вполне логичная возможность.

Иногда ssh доступ не дают по той же причине по которой и ftp – security. Особенно у крупных корпораций или банковских сайтов. У них свои серваки и свои сисадмины-перестраховщики. Так что смена хостинга там не обсуждается.
Есть ещё виндовые хостинги без ssh...

Видимо, всё таки придётся писать свой скрипт для экспорта :(
abbat Сообщение 21/03/2011 21:54 Копия темы
Реализация такой возможности в черепашке является надстройкой над svn blame – в "оригинальном" svn такой возможности нет.

> У них свои серваки и свои сисадмины-перестраховщики.

Сисадмины-то уж точно в состоянии завести репозиторий и дать к нему доступ (или работать с bundle). Так что тут вообще проблем нет.

> Есть ещё виндовые хостинги без ssh...

Ну это уже баловство :)
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"