Extraire un dossier d’un dépôt Git existant en conservant son historique

Au cours de la vie d'un dépôt Git, il peut nous arriver de vouloir extraire un dossier sans perdre l'historique des commits concernant les fichiers se trouvent à l'intérieur. Que ce soit dans un soucis de mutualisation, d'un mauvais choix d'architecture au départ ou encore d'un changement dans notre gestion du dépôt.
Cette opération nécessite une version de Git supérieure ou égale à la 1.7.11.

logo de Git

  1. cd /chemin/base/depot/
  2. git subtree split -P chemin/relatif/dossier -b nomdelanouvellebranche
  3. mkdir /chemin/absolu/nouveaudossier && cd /chemin/absolu/nouveaudossier
  4. git init && git pull /chemin/base/depot/ nomdelanouvellebranche

La branche nomdelanouvellebranche ne contiendra que le dossier que vous souhaitez extraire.

Installer ou mettre à jour un WordPress en local sans FTP

Si vous gérez des blogs sous WordPress, les problèmes de mises à jour locales de la plate-forme et de ses plugins doivent vous être familiers. Pour les effectuer, le système par défaut requiert un serveur FTP sur la machine utilisée. Pour se passer de ce lourd pré-requis, il suffit d'ajouter (après les réglages MySQL par exemple) la ligne suivante au fichier wp-config.php :
define('FS_METHOD', 'direct');

Logo de WordPress

WordPress utilisera désormais le votre système de fichier et vous pourrez effectuer les mises à jour simplement.

J'en profite pour vous lister les arguments possibles. Dans mon cas, j'ai utilisé le premier, direct :

  • direct : pour utiliser directement le système de fichier,
  • ssh2 : pour forcer l'utilisation de l'extension PHP SSH si cette dernière est installée,
  • ftpext : pour utiliser l'extension PHP FTP si elle est installée, ou encore
  • ftpsockets : pour utiliser FTP à travers la classe PHP Sockets

Source : Editing wp-config.php - WordPress Codex

Suivez la création d’un jeu vidéo sur le Thimbleweed Park Development blog

Si les jeux vidéos vous intéressent et que vous êtes curieux de savoir comment ils sont construits, je vous invite à aller lire le blog du développement de Thimbleweed Park. Ce dernier a été kickstarté par 2 grands noms à l'origine du point & click Maniac Mansion. Au rythme d'au moins un billet par semaine, Ron Gilbert et Gary Winnick nous proposent de suivre leur aventure durant toute la durée de création (et même après à mon avis). Les sujets ne manquent pas : idées ajoutées ou supprimées, design, histoire, adoption d'outils de développement ou construction de nouveaux. Ron est plus axé sur le développement du jeu, le moteur, le gameplay. Gary, lui, est plus porté sur le design, l'animation ou l'écriture du scénario. Ces deux facettes complémentaires prennent la plume chacun leur tour pour nous permettre d'avoir une vision globale du processus de création.

Pour nous autres, simples consommateurs, c'est une belle opportunité d'en apprendre plus sur cet univers qui nous passionne. Ce blog est une étude de cas concrète sur la création d'un jeu vidéo par des professionnels aguerris.

Je leur souhaite bon courage et j'ai hâte de pouvoir jouer au produit fini.

Lien utile

BrowserSync, tester ses sites sur plusieurs navigateurs simultanément

BrowserSync est un outil basé sur Node.js qui permet de débuguer ses sites en même temps sur plusieurs navigateurs, simultanément sur des machines, plate-formes différentes. Il joue le rôle de proxy hyper-vitaminé entre le site et vos browsers. La version 2 est sortie il y a un peu moins d'un mois.

Fonctionnalités

  • Naviguer simultanément avec plusieurs navigateurs desktops ou mobiles sur un même site
  • Si un fichier CSS change, la page est rechargée sur tous les navigateurs
  • Synchronisation des clics et scrolls, remplissage des champs et validation de formulaires
  • Recharger la page sur tous les navigateurs
  • Avec Weinre, débuguer une page avec un seul et même outil proposant les fonctionnalités standards (navigation et éditions des éléments HTML/CSS/JS, accéder à la console, voir la timeline des chargements, les activités réseau...)
  • Avec Pesticide.io, afficher des informations en overlay sur les boites CSS en live sur la page
  • Simuler de la latence sur le chargement des pages

Installation

  • Pré-requis : Node.js et npm
  • npm install -g browser-sync

Démarrage

  • sudo browser-sync start --proxy "www.monsite.loc" --files "css/*.css"
browsersync-in-action-screenshot

BrowserSync en action sur un Firefox, un Chromium et un Firefox pour Android

 

La seule chose que je regrette, c'est que les changements effectués dans le DOM via Weinre ne soient pas répercutés sur toutes les fenêtres ouvertes et connectées à BrowserSync. J'ai ouvert une issue sur GitHub pour savoir s'il serait possible d'implémenter cette fonctionnalité.

Encore un bel outil à ajouter à sa trousse au plus vite, si ce n'est pas déjà fait.

Liens utiles

Capturer les mails en local avec FakeEmail

FakeEmail pour quoi faire ?

FakeEmail est un programme en Python qui va vous permettre de lire les mails envoyés par vos applications sans qu'ils sortent de la plate-forme de test. Tel un bouchon, il vous évitera d'inonder les boites mails de potentiels utilisateurs issus d'une base client.
Si vous n'êtes pas développeur, FakeEmail peut également vous servir à lire facilement les mails des applications installées sur votre machine sans avoir à configurer un serveur de mails.

Installation

Par Pip

  • pip install fakeemail

Sur Windows, cette commande est à lancer depuis l'invite de commande.

Par Github

  • Récupérer le dépôt Git de FakeEmail
    • git clone https://github.com/tomwardill/FakeEmail
  • Lancez l'installation (vous devez être root)
    • sudo python setup.py install

Erreur possible

twisted/runner/portmap.c:10:20: fatal error: Python.h: No such file or directory

Il doit vous manquer les paquets build-essential et/ou python-dev, l'exécution de la commande ci-dessous devrait résoudre le problème :
sudo apt-get install build-essential python-dev

Lancer FakeEmail

Manuellement :

fakeemail <port_smtp> <port_consultation_web> <interface_web_d_ecoute>

Exemple où je vais lancer fakeemail pour écouter le port 25 et être accessible via mon navigateur par le port 8080 (http://localhost:8080) :

fakeemail 25 8080 0.0.0.0

Erreur possible

twisted.internet.error.CannotListenError: Couldn't listen on any:25: [Errno 98] Address already in use.

Le système vous signale que le port 25, utilisé par défaut pour le protocole SMTP, est déjà utilisé. Plusieurs options s'offrent à vous :

- Utiliser un autre port que le port standard à l'aide de la commande suivante (ne pas oublier de configurer les services devant envoyer les mails sur ce nouveau port) :

fakeemail 2025 8082 0.0.0.0

- Arrêter le service utilisant le port 25

Pour savoir quel est le processus utilisant ce port : sudo netstat -plntu | grep 25 (la réponse se trouve à la fin de la ligne, après le /, j'ai rencontré sendmail et exim4)

Arrêter le service en question (remplacez sendmail par le service que vous avez trouvé précédemment) :

sudo service sendmail stop

 

Capture d'écran de l'interface

fakeemail

Assez sommaire, vous en conviendrez

 

Lien utile :