Sur cette page

Piles de branches et publication

Une pile de branches (stack) répartit un travail lié sur une suite de branches. Chaque couche dépend de la précédente, ce qui permet de relire des modifications plus petites. Riff sépare l'organisation des branches sur votre poste de leur publication chez le fournisseur.

Créer un stack linéaire

Ouvrez Stacks pour le dépôt actif. Choisissez une branche existante ou créez une couche, puis sélectionnez sa branche parente. Par exemple :

Couche Parent
feature/data main
feature/api feature/data
feature/ui feature/api

Effectuez les modifications de chaque couche sur la branche correspondante. Pour associer une branche existante, le commit actuel du parent doit être un ancêtre de cette branche. Enregistrez la relation avant de faire avancer ou de réécrire le parent. Supprimer l'association conserve la branche et ses commits ; dissociez d'abord les couches dépendantes.

Riff accepte une chaîne linéaire jusqu'à 25 couches, avec 200 commits au maximum par couche. Une couche suivie peut avoir un enfant dans la chaîne. Les commits de fusion, les cycles et les ascendances incompatibles sont refusés.

Vérifier et exécuter le restack

Le restack réapplique les commits de chaque couche sur son parent mis à jour.

  1. Enregistrez les modifications en attente dans un commit ou un stash et terminez toute opération Git en cours. Les branches concernées doivent être disponibles, sans être extraites dans une autre worktree.
  2. Si des fichiers ignorés empêchent l'opération, déplacez-les hors de l'arbre de travail et inspectez à nouveau le dépôt. Riff ne les supprime pas et ne les place pas automatiquement dans un stash pour le restack.
  3. Sélectionnez une couche et chargez l'aperçu. Vérifiez la chaîne complète, les branches parentes, le nombre de commits et l'avertissement concernant l'historique publié. Cet avertissement utilise les références distantes déjà présentes sur votre poste ; il ne résulte pas d'une nouvelle requête au serveur.
  4. Confirmez le plan vérifié. Riff sauvegarde des références de récupération avant la réécriture et contrôle à nouveau les branches et les commits. Les hooks et la signature configurée restent actifs.

Le restack n'effectue aucun push. Réécrire une branche déjà publiée peut nécessiter une décision séparée sur l'historique distant ; le parcours de publication ci-dessous n'effectue pas de push forcé.

Reprendre un conflit ou arrêter la suite

Ouvrez chaque fichier en conflit dans la fenêtre des stacks, vérifiez le résultat et enregistrez-le. Continuez après avoir résolu les conflits restants. La session enregistrée peut être reprise après un redémarrage de Riff si le dépôt lui correspond toujours.

Arrêter les couches restantes conserve les couches terminées. Pendant un conflit, terminez la résolution actuelle et continuez une fois pour arrêter après cette couche. Cela n'annule pas tout le stack. Si un autre processus a modifié le dépôt ou qu'une étape interrompue ne peut pas être confirmée, inspectez l'état et les références de récupération conservées avant de poursuivre.

Publier des pull requests liées

  1. Ouvrez la zone de publication de Stacks et sélectionnez le dépôt distant et une connexion compatible avec le fournisseur. Chaque couche doit contenir des commits, reposer sur son parent actuel et permettre un push normal. La base distante doit correspondre à la base vérifiée.
  2. Chargez l'aperçu de publication. Vérifiez la source, la destination, le commit, le titre et la description de chaque branche. La première pull request cible la base ; les suivantes ciblent chacune la couche précédente.
  3. Confirmez la publication. Riff envoie les révisions vérifiées et crée les demandes dans l'ordre. Il réutilise une pull request existante compatible ; une requête incomplète ne permet pas de conclure à l'absence de demande.
  4. Lisez le résultat de chaque couche et ouvrez les liens du fournisseur pour poursuivre la revue.

La connexion sélectionnée fournit les droits pour l'API du fournisseur. Les opérations Git en HTTPS utilisent les identifiants sélectionnés ; SSH conserve votre authentification SSH configurée. Le parcours ne fusionne pas les demandes, ne supprime pas de branches, ne met pas à jour les sous-modules et ne force pas l'envoi d'un historique divergent.

Reprendre une publication partielle

La progression est enregistrée par couche. Mettre en pause arrête les étapes suivantes et conserve les branches et les demandes déjà publiées. Reprenez après avoir corrigé un refus confirmé de connexion ou de droits ; Riff vérifie à nouveau le dépôt, l'identité et l'état distant.

Une demande peut avoir un résultat incertain si le fournisseur l'a reçue mais que la réponse a été perdue. Riff consulte le fournisseur avant de continuer et ne répète pas automatiquement la création simplement parce que la demande est absente d'une requête. Vérifiez le fournisseur et l'état affiché ; une session incertaine ne peut pas être supprimée par le parcours normal. La publication n'est pas une transaction unique entre Git et le fournisseur.

Consultez les conflits et la récupération pour les points de retour, ou les contextes de travail pour les worktrees et les contextes de la session.