10
votes

ClearCase - Différence entre la mise à jour et la Rebase

J'ai récemment été jeté dans l'apprentissage Clearcase (je viens d'un antécédent avec Git et Svn - je les manquais désespérément tous les deux :)) Et j'ai mâché celui-ci pendant un moment: dans une vue d'instantané, Quelle est la différence entre une mise à jour et une boîte de rebas?

Je sais qu'il y a des différences (et honnêtement, j'ai commencé à ignorer "la mise à jour" tout à fait, car elle ne semble jamais faire ce que je veux (qui consiste à tirer des modifications que d'autres Devs ont récemment livré (git tirant, mise à jour SVN)) ), Je ne vois tout simplement pas quelle est la différence (et les documents CC sont moins que utiles sur la question (pour des points de bonus: tous les indemniseurs de bonnes ressources CC (quelque chose d'appartienne à SVN-Book ou les pages de Git Man, par exemple) ))). Oui, c'était une phrase et une demi-douzaine de parenthèses.


0 commentaires

4 Réponses :


6
votes

mise à jour vient de mettre à jour une vue d'instantané de manière à ce qu'elle correspond aux versions correspondantes en ClearCase.

Rebase est pour les projets UCM - il fusionne des modifications de la dernière ligne de base recommandée dans le flux d'intégration dans votre flux de développement personnel.

Normalement, vous utilisez la mise à jour des vues de l'instantané des objets non UCM, tandis que vous utilisez Rebase pour les projets UCM.


3 commentaires

Je suppose que cela expliquerait pourquoi la mise à jour ne semble jamais être tout ce qui est utile (nous utilisons UCM). Je suppose que la pièce que je ne comprends toujours pas est "afin qu'elle correspond aux versions correspondantes en ClearCase". Qu'entendez-vous par «en Clearcase»? Je penserais «les choses qui ont été livrées au cours d'eau sur lesquelles mon opinion est basée», mais encore une fois, cela fait une mise à jour, sonne énormément comme une Rebase ...


@Mitch: la mise à jour est utilisée uniquement avec Snapshot Vues, ​​qui sont une sorte de nature statique, comme une copie locale de ce qui est en Clearcase. Lorsque vous mettez à jour, vous obtenez des modifications de ClearCase, plus récentes que votre instantané, c'est-à-dire. Rebase fait beaucoup la même chose, mais elle fusionne également de l'intégration au flux de développement.


Je suppose que c'était surtout l'idée de partager Dev Streams contre un flux d'intégration principale qui me confondait maintenant, c'est un sens, merci.



9
votes

Si nous ne serons pas clairs, un flux = une succursale à terme commun.

Pour UCM, une mise à jour n'est généralement utile que lorsque vous travaillez sur un flux partagé, de sorte qu'un autre développeur puisse vérifier dans des fichiers sur ce flux sur lequel vous travaillez. Dans ce scénario, vous utilisez "Mise à jour" pour tirer les modifications apportées par ce développeur sur ce même flux.

Une Rebase tire des modifications apportées sur le flux d'intégration central qui a été commis par différents développeurs de votre entreprise à partir de leurs flux respectifs. Un engagement de sous-cours à l'intégration du flux est appelé "livraison" qui est le contraire de la Rebase.


0 commentaires

10
votes

La mise à jour est strictement pour la vue d'instantané: voir le Différence entre instantané et vue dynamique .

Lorsque vous faites une boîte de rebas, en utilisant une vue d'instantané, cette opération (qui modifie les fondations de base du flux associé à la vue) sera complétée par une mise à jour de ladite vue d'instantanée.

Si vous souhaitez obtenir le développement d'autres développeurs, vous pouvez le faire avec une mise à jour uniquement desdits développeurs qui vérifient leur code dans la même branche que celle que vous surveillez avec votre vue d'instantanée.
Si vous utilisez UCM, ces développeurs doivent avoir leur point de vue associé au même flux que celui utilisé par votre vue d'instantané.

puis , une mise à jour vous permettra de revenir (et de fusionner si nécessaire) toutes les modifications effectuées par vos collègues.
Mais cela suppose que vous n'utilisez pas le "un flux par modèle de développeur" (quel Je ne trouve pas très utile )

Pour une bonne première lecture:


1 commentaires

Super, merci pour l'info. J'ai vu assez de vos réponses cc ici ... IBM devrait certainement vous payer;)



-1
votes

De ce que je comprends, ClearCase Update est comme un fusion dans git.

  • Il tire les changements et les ajoute ensuite comme un nouveau commit sur cette branche.
  • L'étiquette de base ne change pas.

    Une descasse d'autre part est comme un rebase dans git.

    • Si vous rebastez à une autre étiquette, il est comme une réécriture de votre histoire à montrer que cette branche a été faite à partir de cette nouvelle étiquette.
    • Cela vous permet de continuer à développer sur une branche de fonctionnalité, puis de publier vos modifications, vous pouvez Rebase votre succursale sur la dernière étiquette officielle.

0 commentaires