Tu as plusieurs approches possibles. Tout d'abord notons CLIENT et PERSO tes dépôts (copies de travail) git, ce qui nous servira à décrire les workflows. Pour évaluer les différentes solutions il faut que tu regardes ce qui est techniquement et commercialement faisable.
La raison qui fait que c'est possible techniquement est que git est décentralisé et un dépôt donné n'a aucun rôle techniques spécifique par rapport à un autre – le clone produit par git clone est en principe total – et git fournit plein d'outils pour échanger les données entre les divers clones d'un même dépôt.
1. INSTALLER UN HOP SUR TON INTRANET
Comme tu mentionnes que tu peux accéder pour quelques minutes à ton propre depuis chez ton client, ce serait facile de créer un serveur sur ton propre intranet qui tourne toujours et héberge un dépôt HOP, accessible via SSH-GIT, HTTPS-GIT, ou bien par NFS par exemple. Ainsi ton workflow ressemblerait à:
Arrivée site client
Hack
Pousse de CLIENT vers HOP avant de rentrer à la maison
À la maison, tire de HOP sur PERSO
Hack
Avant de partir chez le client pousse de PERSO sur HOP
Arrivée sur le site client, tire de HOP sur CLIENT
Hack
Pousse de CLIENT vers HOP avant de rentrer à la maison
...
2. INSTALLER UN HOP AILLEURS SUR INTERNET
Tu peux aussi considérer un hébergement de dépôt git payant, cela coûte une poignée d'euros par mois. Tu y créerais un dépôt HOP, que tu utiliserais comme précédemment. Variante avec une box complète, prix analogue.
3. UTILISER UN HOP SUR UNE CLEF USB
Si tes postes de travail peuvent accéder aux mêmes systèmes de fichiers (par exemple ce sont deux Linux) tu peux utiliser un support amovible pour stocker ton dépôt HOP (par exemple un bare repo). Il faudrait certainement crypter ce support pour se prémunir contre sa perte.
4. UTILISER GIT-BUNDLE PAR E-MAIL
La sous-commande git bundle permet de sauvegarder une partie d'un dépôt git dans une archive fichier, dite "bundle", qui peut ensuite être importé dans un autre dépôt. Le "bundle" peut être acheminé via une clef USB ou en P.j. sur un email.
% man git-bundle
...
Some workflows require that one or more branches of development on one
machine be replicated on another machine, but the two machines cannot
be directly connected, and therefore the interactive Git protocols
(git, ssh, http) cannot be used. This command provides support for git
fetch and git pull to operate by packaging objects and references in an
archive at the originating machine, then importing those into another
repository using git fetch and git pull after moving the archive by
some means (e.g., by sneakernet). As no direct connection between the
repositories exists, the user must specify a basis for the bundle that
is held by the destination repository: the bundle assumes that all
objects in the basis are already in the destination repository.
Cela correspond assez exactement à ton besoin. Je l'ai utilisé pendant longtemps en mode "sneakernet," c'est un peu relou mais si tu dois jongler entre les intranets cela reste sûrement plus simple que les push/pull à travers le réseau.
En gros c'est le même workflow qu'avec le HOP mais au lieu de cela à la fin de ta session de travail, tu fais und bundle avec tous tes derniers commits et l'apporte ou l'email à ton autre station pour pouvoir l'importer.
5. GIT-IMAP
Jette un œil à la man-page git-imap-send – je n'ai jamais utilisé cette fonction mais cela semble pouvoir répondre à ton besoin.
6. MON AVIS
Admettant que ton client soit d'accord avec ces manips, je pense que les solutions les plus simples sont, par ordre croissante de complexité à l'usage.
Installer un HOP ailleurs sur Internet, si tu as un accès illimité chez ton client.
Utiliser un HOP sur une clef USB, si tu as droit au support amovible.
# Plusieurs options
Posté par Michaël (site web personnel) . En réponse au message workflow git. Évalué à 5.
Tu as plusieurs approches possibles. Tout d'abord notons CLIENT et PERSO tes dépôts (copies de travail) git, ce qui nous servira à décrire les workflows. Pour évaluer les différentes solutions il faut que tu regardes ce qui est techniquement et commercialement faisable.
La raison qui fait que c'est possible techniquement est que git est décentralisé et un dépôt donné n'a aucun rôle techniques spécifique par rapport à un autre – le clone produit par
git cloneest en principe total – et git fournit plein d'outils pour échanger les données entre les divers clones d'un même dépôt.1. INSTALLER UN HOP SUR TON INTRANET
Comme tu mentionnes que tu peux accéder pour quelques minutes à ton propre depuis chez ton client, ce serait facile de créer un serveur sur ton propre intranet qui tourne toujours et héberge un dépôt HOP, accessible via SSH-GIT, HTTPS-GIT, ou bien par NFS par exemple. Ainsi ton workflow ressemblerait à:
2. INSTALLER UN HOP AILLEURS SUR INTERNET
Tu peux aussi considérer un hébergement de dépôt git payant, cela coûte une poignée d'euros par mois. Tu y créerais un dépôt HOP, que tu utiliserais comme précédemment. Variante avec une box complète, prix analogue.
3. UTILISER UN HOP SUR UNE CLEF USB
Si tes postes de travail peuvent accéder aux mêmes systèmes de fichiers (par exemple ce sont deux Linux) tu peux utiliser un support amovible pour stocker ton dépôt HOP (par exemple un bare repo). Il faudrait certainement crypter ce support pour se prémunir contre sa perte.
4. UTILISER GIT-BUNDLE PAR E-MAIL
La sous-commande git bundle permet de sauvegarder une partie d'un dépôt git dans une archive fichier, dite "bundle", qui peut ensuite être importé dans un autre dépôt. Le "bundle" peut être acheminé via une clef USB ou en P.j. sur un email.
Cela correspond assez exactement à ton besoin. Je l'ai utilisé pendant longtemps en mode "sneakernet," c'est un peu relou mais si tu dois jongler entre les intranets cela reste sûrement plus simple que les push/pull à travers le réseau.
En gros c'est le même workflow qu'avec le HOP mais au lieu de cela à la fin de ta session de travail, tu fais und bundle avec tous tes derniers commits et l'apporte ou l'email à ton autre station pour pouvoir l'importer.
5. GIT-IMAP
Jette un œil à la man-page
git-imap-send– je n'ai jamais utilisé cette fonction mais cela semble pouvoir répondre à ton besoin.6. MON AVIS
Admettant que ton client soit d'accord avec ces manips, je pense que les solutions les plus simples sont, par ordre croissante de complexité à l'usage.