web-dev-qa-db-fra.com

Que signifie un gros morceau par rapport à des poussées sur sourcetree

Lorsque j'apporte des modifications à ma branche "développer", je vois une flèche vers le haut à côté de la branche m'indiquant combien de modifications seront poussées. Ce qui m'embrouille, c'est comment sourcetree décide quel est le nombre?

Il semble se rapporter à quelque chose appelé mecs? Que sont les mecs?

Existe-t-il un commit git équiavalent qui renvoie le même nombre?

23
Breako Breako

Notez que le nombre de changements à pousser se réfère probablement au nombre de validations que vous êtes en avance sur Origin/master et n'est pas lié aux mecs. Pour voir les validations que vous êtes en avance sur master, vous pouvez procéder comme suit:

# get most recent commit found in both master and Origin/master
mb=$(git merge-base master Origin/master)
# show commits from that merge base to current head
git log $mb..HEAD

Si vous voulez le compter, faites simplement:

mb=...
git log --pretty=oneline $mb..HEAD | wc -l

hunk est un terme lié à diff :

Le format commence par le même en-tête à deux lignes que le format de contexte, sauf que le fichier d'origine est précédé de "---" et le nouveau fichier est précédé de "+++". Après cela, un ou plusieurs morceaux de modification contiennent les différences de ligne dans le fichier. Les lignes contextuelles inchangées sont précédées d'un caractère espace, les lignes d'addition sont précédées d'un signe plus et les lignes de suppression sont précédées d'un signe moins.

Si vous avez déjà pris un diff de deux fichiers, vous voyez le fichier comme ceci (encore une fois à partir de wikipedia):

--- /path/to/original   ''timestamp''
+++ /path/to/new        ''timestamp''
@@ -1,3 +1,9 @@
+This is an important
+notice! It should
+therefore be located at
+the beginning of this
+document!
+
 This part of the
 document has stayed the
 same from version to
@@ -5,16 +11,10 @@
 be shown if it doesn't
 change.  Otherwise, that
 would not be helping to
-compress the size of the
-changes.
-
-This paragraph contains
-text that is outdated.
-It will be deleted in the
-near future.
+compress anything.
 It is important to spell
-check this dokument. On
+check this document. On
 the other hand, a
 misspelled Word isn't
 the end of the world.
@@ -22,3 +22,7 @@
 this paragraph needs to
 be changed. Things can
 be added after it.
+
+This paragraph contains
+important new additions
+to this document.

Le fichier ci-dessus a trois mecs. Si vous souhaitez voir le diff associé à un commit, vous pouvez utiliser git show [<commit>]. Pour voir la différence entre vos modifications non planifiées actuelles et le référentiel, vous pouvez utiliser git diff. Il existe différentes autres options.

Pour compter le nombre de mecs (ce qui est vraiment, vraiment inutile, mais si vous insistez), vous pouvez utiliser un script très simple.

git show | grep '^@@.*@@.*$' | wc -l

La raison du .* après le deuxième @@ est que le diff de git montre également la fonction à laquelle le changement appartient afin qu'il puisse mieux appliquer le diff plus tard, donc l'en-tête du morceau pourrait par exemple ressembler à ceci:

@@ -85,6 +85,6 @@ void urt_shmem_detach(void *mem)
19
Shahbaz

En répondant à la question de gros morceau :

Hunk means a piece of change in the Git world.

src: https://mvtechjourney.wordpress.com/2014/08/01/git-stage-hunk-and-discard-hunk-sourcetree/

Il y a la suggestion de

Remplacez le mot "morceau" par "changer" et il devient agréable de suivre Git.

7
Dirk Schumacher

Le nombre de modifications à pousser est essentiellement le nombre de validations que vous avez effectuées depuis la dernière poussée. Sourcetree calcule cela en regardant la distance entre la tête distante et la tête actuelle en termes de commits.

git status vous indiquera le nombre de validations que vous êtes en avance (= nombre de validations qui seront poussées):

# On branch master
# Your branch is ahead of 'Origin/master' by 1 commit.

Cela n'a pas grand-chose à voir avec les mecs, qui sont des morceaux individuels de diff.

2
nneonneo