Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Автовыкладывание из SVN (Константин Жинько [tIT], оценка: 6)
Author Message
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 106
   поощрить/наказать

Location: Москва

PostPosted: Thu May 31, 2007 1:43 pm (написано за 8 минут 12 секунд)
   Post subject: Автовыкладывание из SVN
Reply with quote

Имеем:
1) Эклипс, как клиент к svn
2) Репозиторий svn на офисном юнихе
3) Несколько проектов в репозитории (имя проекта = имя папки в репозитории = имя папки на веб-сервере)

Надо: после каждого коммита делать чекаут проекта в /path/имя проекта/www/

Известно, что есть у svn хуки на разные события. В частности замечательная штука post-commit, в которой доступны: путь к репозиторию и номер ревизии.
Пусть есть проект в репозитории с именем plan:
plan/htdocs/*
plan/conf/*

После коммита должно быть

/path/plan/www/htdocs/*
/path/plan/www/conf/*

В порядке эксперимента содержимое post-commit:
Code (Bash): скопировать код в буфер обмена
echo "$1" "$2" > /tmp/t.txt
делаем коммит и:
Code (Bash): скопировать код в буфер обмена
#cat /tmp/t.txt

/home/svn 8
то есть, не получаем никакой информации, чтобы отличить plan от другого проекта.

Вопрос к знатокам: как и возможно ли вообще добиться подобного функционала?
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Thu May 31, 2007 2:13 pm (спустя 30 минут; написано за 2 минуты 38 секунд)
   Post subject:
Reply with quote

Константин Жинько [tIT]
Возможно, я даже знаю как, но лениво было делать =))))

Идея такая: для получения файлов полученной ревизии пинается
Code (Bash): скопировать код в буфер обмена
#!/bin/bash
XYZ=`svnlook dirs-changed $1 -r $2 | head -1`
svn export $1$XYZ /path/to/webfolder$XYZ
В качестве домашнего задания -- обрезание $XYZ до нужного состояния.

PS: Огромное спасибо Ильдару за подсказки.
Back to top
View user's profile Send private message
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 106
   поощрить/наказать

Location: Москва

PostPosted: Fri Jun 01, 2007 1:39 pm (спустя 23 часа 25 минут; написано за 2 минуты 17 секунд)
   Post subject:
Reply with quote

Может, кому пригодится такой вариант:
Code (php): скопировать код в буфер обмена
#!/usr/bin/php
<?php

$path = $_SERVER['argv'][1];
$rev  = $_SERVER['argv'][2];

// getting the first changed dir of current revision
// it's no use exploring other dirs, because root has already found
$dir = `svnlook dirs-changed "$path" -r "$rev" | head -1`;
$dir = chop (www.php.net/chop)($dir);

// getting module name
if (preg_match (www.php.net/preg_match)("/(\w+)\/.*/i", $dir, $matches)) {

        $module = $matches[1];

        $from = $path.'/'.$module;
        $to   = '/server/web/'.$module.'/www';

        // if we haven't settings for this project - aborting
        if (!file_exists (www.php.net/file_exists)($to)) exit (www.php.net/exit)(0);

        // backuping ftp data if exists
        $folder_name = md5 (www.php.net/md5)(time (www.php.net/time)());
        if (file_exists (www.php.net/file_exists)($ftp = $to.'/htdocs/data')) `mv $ftp /tmp/$folder_name`;

        // cleaning everything before export
        `rm -R $to`;
        // exporting project tree
        `svn export file (www.php.net/file):///$from $to`;

        // restoring ftp data
        if (file_exists (www.php.net/file_exists)("/tmp/$folder_name")) `mv /tmp/$folder_name $ftp`;

}

?>
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Fri Jun 01, 2007 1:52 pm (спустя 13 минут; написано за 1 минуту 1 секунду)
   Post subject:
Reply with quote

Константин Жинько [tIT]
Во, даже красиво получилось.
Только такие вещи лучше на баше или перле писать, имхо. 8*)
Back to top
View user's profile Send private message
Константин Жинько [tIT]
Сотрудник «Лаборатории»



Joined: 12 Jun 2004
Posts: 2264
Карма: 106
   поощрить/наказать

Location: Москва

PostPosted: Fri Jun 01, 2007 2:42 pm (спустя 49 минут; написано за 57 секунд)
   Post subject:
Reply with quote

WingedFox
Напишите (-;
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 269
   поощрить/наказать

Location: Питер

PostPosted: Fri Jun 01, 2007 2:52 pm (спустя 10 минут; написано за 11 секунд)
   Post subject:
Reply with quote

Константин Жинько [tIT]
А надо? =)
Back to top
View user's profile Send private message
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Fri Jun 01, 2007 3:29 pm (спустя 37 минут; написано за 7 минут 8 секунд)
   Post subject:
Reply with quote

я к своему стыду не специалист по работе с репозиториями (судьба не свела меня с ними).
но при автоматизации каких-то процессов я обычно делаю так.
Code (Bash): скопировать код в буфер обмена
#!/bin/bash

[ -z "$1" -o -z "$2" ] || { echo "Usage: $0 PATH_ARG REV_ARG"; exit; }

XYZ=`svnlook dirs-changed $1 -r $2 | head -1 | perl -ne 's/что-изменить/чем-заменить/; print'`

дополнительная логика, зависящая от содержимого $XYZ

svn export $1$XYZ /path/to/webfolder$XYZ
кошернее наверно вместо perl использовать sed или awk,
но синтаксис регэкспов первого заметно отличается от перла
а awk делает также и (не лучше|не хуже) чем перл. к тому же awk он многословнее перла
Back to top
View user's profile Send private message
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 409
   поощрить/наказать


PostPosted: Tue Jun 05, 2007 1:14 am (спустя 3 дня 9 часов 45 минут; написано за 2 минуты 29 секунд)
   Post subject:
Reply with quote

Кстати, скажу по-секрету, для CVS аналогичный скрипт занимает раз в 5 больше место. По одной очень простой причине: если CVS коммитит сразу 3 директории, то он запускает параллельно 3 процесса из своих хуков, и каждый из них при этом не может из CVS ничего читать, т.к. возникает дедлок. Соответственно, алгоритм - оставить самого молодого процесса, заснуть на секунду (асинхронно! выйдя из хука!) и сделать cvs update. Жуть, короче говоря. В SVN в этом отношении все гораздо проще.
Back to top
View user's profile Send private message Send e-mail
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9994
   поощрить/наказать


PostPosted: Tue Jun 30, 2009 11:08 pm (спустя 2 года 25 дней 21 час 53 минуты)
   Post subject:
Reply with quote


М

Ветка выделена в отдельную тему «спам»,
расположенную в форуме Мусоропровод (01 Июля 2009, 00:08).
Back to top
View user's profile Send private message
JoelEmbiids
Заглянувший



Joined: 16 Jan 2017
Posts: 16
Карма: 0
   поощрить/наказать


PostPosted: Wed Jan 18, 2017 1:24 pm (спустя 7 лет 6 месяцев 17 дней 14 часов 16 минут; написано за 1 секунду)
   Post subject: Asics Gel Nimbus 17 Homme obtenir un maintenant
Reply with quote

La faible est maintenant disponible chez sélectionnez stan smith femme rose.’Nicole Miller est reconnue comme une marque de luxe sophistiqué avec un amusement flair, et ce sont les attributs autour duquel nous a créé les air jordan true flight enfants ‘, a déclaré Paul Farago, COO de Kinderland, qui produit aussi Andago Venettini, et Daniel Engel lignes de adidas t shirt.McIlroy a projeté le 3-bois sur le green, l'accrochage de la tête du club off pendant sa frustration face à l'errant hit. La même grande recherche robuste exécutant sentir est offert mais cette fois le sneaker obtient un col à maille bleue frappant fermement contrastes les hits des rose qui met en lumière sa base noire. Parfait pour la saison, Asics Gel Nimbus 17 Homme obtenir un maintenant, directement depuis le magasin en ligne de. Consultez les images ci-dessus pour des informations plus détaillées.Electric Blue supérieur avec Orange souligne que se fondent dans la coque talonnière, doublure intérieure, et d.

des lacets avant et attacher la fixation et un 3,7-pouces à talons aiguilles, la vente au détail pour $967. ‘J'aime la liberté de cela, et c'est donc pourquoi j'étais intrigué et dit oui quand ils se sont approchés de moi. Mais c sera prévoit prendre plus que juste la frénésie entourant le jeu pour retourner le trafic piétonnier dans les magasins en quelque chose de plus. Laissez-nous savoir dans les commentaires ci-dessous. Sous blindage publiera Adidas NMD soldes Carolina Panthers quarterback Newton fait partie de la campagne de l'automne 2016. Nike Exécuter Thru 90's Pack de temps et choisir un dès maintenant comme ils l'ont échappé à l'échelle mondiale en magasin aujourd'hui, Octobre 8th. Obtenez un maintenant, exclusivement à partir de Colette.

www.shop-running-shoes.com/
Back to top
View user's profile Send private message
JoelEmbiids
Заглянувший



Joined: 16 Jan 2017
Posts: 16
Карма: 0
   поощрить/наказать


PostPosted: Fri Jan 20, 2017 12:54 pm (спустя 1 день 23 часа 29 минут; написано за 3 секунды)
   Post subject: comme supérieure Adidas Zx Flux Femme Rose
Reply with quote

GC: ces magasins sont moins d'un tiers de l'entreprise, et nous ne sommes pas après tout agrandissement majeur. Drummond est également signé à la marque. Cette paire a probablement été délivré à lui en 2007, lorsque Adidas rétro dans une tonne de.’Willett de neuf fils était déjà prêt pour la victoire dans une paire de chaussons bébé FitJoy qu'il a reçue de l'étiquette au début du tournoi, qui a débuté lundi. Quel est son rôle dans la stratégie de vente de la marque. Fly 4 utiliseront une lumière hyperfuse respirant comme supérieure Adidas Zx Flux Femme Rose.Le Black History Month air jordan 2017 prix publiera 17ème Janvier cette année.

Plus tôt cette semaine, Smalls, Gigi et Bella Hadid a assisté à un dîner à New York pour la marque célèbre son implication avec des crayons de promesse, qui soutient l'éducation partout dans le monde. Adidas né à Brooklyn, New York il devrait donc pas surprenant qu'une paire inspirée par son lieu de naissance chuterait, la jordan pas chère. Stuart Weitzman aidera à financer la construction d'écoles au Laos, au Guatemala et au Ghana.For mentionné précédemment maintenant la nike jordan 4 Marvin le Martien devrait baisser en Mars cette année. Si Adidas Ultra Boost Uncaged vous avez fait, félicitations, il a été une libération mouvementée. Les chaussures qu'il partage sont les Adidas 'Fire Red' et la 'Cérémonie de Ring'. Middleton a pris l'Sanderson nike jordan noir tout en hommage, offrant aux photographes et aux spectateurs, une chance de voir les adidas original femme pas cher close up.

www.shop-running-shoes.com/adidas-gazelle
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML