{"id":3137,"date":"2013-04-10T08:33:47","date_gmt":"2013-04-10T08:33:47","guid":{"rendered":"https:\/\/www.combell.com\/fr\/blog\/?p=3137"},"modified":"2015-06-03T17:36:28","modified_gmt":"2015-06-03T15:36:28","slug":"deploiement-de-logiciels-avec-git-et-svn-via-ssh","status":"publish","type":"post","link":"https:\/\/www.combell.com\/fr\/blog\/deploiement-de-logiciels-avec-git-et-svn-via-ssh\/","title":{"rendered":"D\u00e9ploiement de logiciels avec Git et SVN via SSH"},"content":{"rendered":"<p>Depuis le lancement de l\u2019acc\u00e8s SSH sur notre environnement d\u2019h\u00e9bergement mutualis\u00e9 Linux, vous disposez des binaires Git et SVN. Ceux-ci vous permettent non seulement de faire de la gestion de versions, mais aussi de r\u00e9cup\u00e9rer des donn\u00e9es. En d\u2019autres termes, vous pouvez d\u00e9ployer \u00e0 partir d\u2019un d\u00e9p\u00f4t de gestion de versions.<\/p>\n<p>Si vous utilisez des \u00e9tiquettes et des branches, vous pouvez envoyer une version sp\u00e9cifique de votre logiciel vers notre environnement. Et ce, alors que vous \u00eates peut-\u00eatre encore en plein d\u00e9veloppement de votre application dans une branche de votre d\u00e9p\u00f4t.<\/p>\n<p><!--more-->Vous pouvez appliquer deux strat\u00e9gies\u00a0:<\/p>\n<ul>\n<li>Exporter les donn\u00e9es de votre branche afin que seuls les fichiers sur votre pack soient conserv\u00e9s<\/li>\n<li>Extraire la branche de votre projet et ainsi aussi conserver les informations du serveur et de r\u00e9vision<\/li>\n<\/ul>\n<p><strong>Subversion<\/strong><\/p>\n<p>Subversion (\u00e9galement connu sous son abr\u00e9viation SVN) permet de faire de la gestion de version de fa\u00e7on tr\u00e8s traditionnelle. La strat\u00e9gie de base est la suivante\u00a0: il y a un seul serveur central o\u00f9 tout le code est conserv\u00e9 dans diff\u00e9rentes versions. Tout le d\u00e9ploiement se fait \u00e0 partir de ce serveur central. Entre-temps, Subversion est devenu un projet Apache de haut niveau. Pour de plus amples informations concernant son fonctionnement, rendez-vous sur le <a href=\"http:\/\/subversion.apache.org\/\" target=\"_blank\" rel=\"noopener\">site web officiel<\/a>.<\/p>\n<p>Sur notre environnement, nous avons juste pr\u00e9vu un client SVN, pas un serveur. Le but est que vous vous connectiez \u00e0 votre serveur Subversion \u00e0 partir de notre h\u00e9bergement.<\/p>\n<p><em>Exemples:<\/em><\/p>\n<p>Pour exporter une branche SVN vers votre pack, vous pouvez p. ex. utiliser la commande suivante\u00a0:<\/p>\n<pre>svn export <span style=\"text-decoration: underline;\"><a href=\"http:\/\/votre.serveur.svn\/repo\/trunk\/\" target=\"_blank\" rel=\"noopener\">http:\/\/votre.serveur.svn\/repo\/trunk\/<\/a><\/span> .<\/pre>\n<p>La commande ci-dessus \u00e9tablira une connexion avec votre serveur SVN (qui tourne sur \u00ab\u00a0votre.serveur.svn\u00a0\u00bb) et s\u2019adressera au d\u00e9p\u00f4t \u00ab\u00a0repo\u00a0\u00bb. Dans le cas pr\u00e9sent, c\u2019est la branche \u00ab\u00a0trunk\u00a0\u00bb de ce d\u00e9p\u00f4t qui est r\u00e9cup\u00e9r\u00e9e.<\/p>\n<p>Vous pouvez aussi extraire une branche. Voici comment proc\u00e9der\u00a0:<\/p>\n<pre>svn co <span style=\"text-decoration: underline;\"><a href=\"http:\/\/votre.serveur.svn\/repo\/trunk\/\" target=\"_blank\" rel=\"noopener\">http:\/\/votre.serveur.svn\/repo\/trunk\/<\/a><\/span> .<\/pre>\n<p>Les fichiers de cette branche se retrouveront eux aussi sur votre pack, mais un dossier \u00ab\u00a0.svn\u00a0\u00bb sera \u00e9galement pr\u00e9vu afin de conserver les informations de r\u00e9vision. Via une commande \u00ab\u00a0svn up\u00a0\u00bb, vous pouvez faire en sorte que d\u2019\u00e9ventuelles modifications soient automatiquement r\u00e9cup\u00e9r\u00e9es. Vous pouvez \u00e9galement renvoyer des modifications via la commande \u00ab\u00a0svn commit\u00a0\u00bb.<\/p>\n<p><strong>Git<\/strong><\/p>\n<p>Bien que Git soit d\u00e9j\u00e0 assez ancien et qu\u2019il \u00e9tait autrefois utilis\u00e9 principalement pour g\u00e9rer les versions dans le cadre du d\u00e9veloppement du noyau Linux, il est d\u00e9sormais devenu standard. Avec Git, il n\u2019est pas n\u00e9cessaire d\u2019avoir un seul serveur central, ce qui n\u2019est pas le cas avec Subversion. Git fonctionne de mani\u00e8re distribu\u00e9e et des d\u00e9p\u00f4ts peuvent \u00eatre synchronis\u00e9s dans les deux directions. Vous retrouverez de plus amples informations concernant ce fonctionnement sur le site web officiel de Git.<\/p>\n<p>Vous pouvez \u00e9galement cr\u00e9er un nouveau d\u00e9p\u00f4t Git sur votre pack et conserver les \u00e9ventuelles modifications, que vous pouvez synchroniser avec d\u2019autres d\u00e9p\u00f4ts. Malgr\u00e9 qu\u2019il s\u2019agisse d\u2019une approche int\u00e9ressante, pour les d\u00e9ploiements, nous appliquons plut\u00f4t une strat\u00e9gie <em>pull<\/em> au lieu d\u2019une strat\u00e9gie <em>push<\/em>.<\/p>\n<p><em>Exemples:<\/em><\/p>\n<p>Pour pouvoir r\u00e9cup\u00e9rer un d\u00e9p\u00f4t Git, vous pouvez utiliser la commande suivante\u00a0:<\/p>\n<pre>git clone --depth=1 git:\/\/github.com\/username\/repo.git .<\/pre>\n<p>La commande ci-dessus \u00e9tablira une connexion avec votre serveur Git (dans le cas pr\u00e9sent, il s\u2019agit de github.com) et s\u2019adressera au d\u00e9p\u00f4t \u00ab\u00a0repo\u00a0\u00bb. Ce d\u00e9p\u00f4t tourne au sein de votre compte qui est ici repr\u00e9sent\u00e9 par \u00ab\u00a0username\u00a0\u00bb.<\/p>\n<p>La commande \u00ab\u00a0git clone\u00a0\u00bb est l\u2019\u00e9quivalent de \u00ab\u00a0svn co\u00a0\u00bb. En d\u2019autres termes\u00a0: les informations concernant les versions sont \u00e9galement r\u00e9cup\u00e9r\u00e9es et plac\u00e9es dans le dossier \u00ab\u00a0.git\u00a0\u00bb. Vous pouvez donc contribuer \u00e0 ce d\u00e9p\u00f4t et transmettre des modifications.<\/p>\n<p>Pour vous limiter \u00e0 une exportation des donn\u00e9es, il vous suffit de supprimer le dossier \u00ab\u00a0.git\u00a0\u00bb apr\u00e8s le \u00ab\u00a0git clone\u00a0\u00bb. Vous pouvez faire cela de la mani\u00e8re suivante\u00a0:<\/p>\n<pre>rm \u2013rf .git<\/pre>\n<p>Pour faire d\u2019une pierre deux coups, vous pouvez combiner les deux commandes comme suit\u00a0:<\/p>\n<pre>git clone --depth=1 git:\/\/github.com\/username\/repo.git . &amp;&amp; rm \u2013rf .git<\/pre>\n<p>Le param\u00e8tre \u00ab\u00a0--depth=1\u00a0\u00bb limite la quantit\u00e9 d\u2019information sur la version r\u00e9cup\u00e9r\u00e9e. Si vous souhaitez supprimer cette limite, il vous suffit d\u2019omettre ce param\u00e8tre.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depuis le lancement de l\u2019acc\u00e8s SSH sur notre environnement d\u2019h\u00e9bergement mutualis\u00e9 Linux, vous disposez des binaires Git et SVN. Ceux-ci vous permettent non seulement de faire de la gestion de...<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[67],"tags":[],"acf":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-featured":false,"post-featured-opt":false,"post-featured-opt-md":false,"post-featured-opt-sm":false,"post-featured-opt-xs":false,"post-most-popular":false,"post-author":false},"uagb_author_info":{"display_name":"Jimmy Cappaert","author_link":"https:\/\/www.combell.com\/fr\/blog\/author\/jimmy\/"},"uagb_comment_info":0,"uagb_excerpt":"Depuis le lancement de l\u2019acc\u00e8s SSH sur notre environnement d\u2019h\u00e9bergement mutualis\u00e9 Linux, vous disposez des binaires Git et SVN. Ceux-ci vous permettent non seulement de faire de la gestion de...","_links":{"self":[{"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/3137"}],"collection":[{"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/comments?post=3137"}],"version-history":[{"count":4,"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/3137\/revisions"}],"predecessor-version":[{"id":3147,"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/3137\/revisions\/3147"}],"wp:attachment":[{"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/media?parent=3137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/categories?post=3137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.combell.com\/fr\/blog\/wp-json\/wp\/v2\/tags?post=3137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}