2017-08-15 5 views
0

J'ai un dépôt dans lequel j'ai actuellement deux fichiers. J'ai fait un changement à un fichier, et j'ai engagé le changement, mais je ne l'ai pas encore poussé. Lorsque je lance 'git status' à partir d'une ligne de commande, je reçois ce qui suit:Avec LibGit2Sharp, la commande Status doit-elle afficher les modifications validées, mais pas encore activées?

On branch master 
Your branch is ahead of 'origin/master' by 1 commit. 
    (use "git push" to publish your local commits) 
nothing to commit, working tree clean 

Ceci est comme prévu.

J'ai un code en C# pour obtenir l'état du dépôt, comme indiqué ici:

using (Repository repo = new Repository(localRepoFolder)) 
{ 
    RepositoryStatus status = repo.RetrieveStatus(); 
} 

Lorsque je fais un pas dans le code et faire une décharge de la variable d'état, je reçois le ci-dessous :

status 
+0 ~0 -0 | +0 ~0 -0 | i0 
Added: Count = 0 
DebuggerDisplay: "+0 ~0 -0 | +0 ~0 -0 | i0" 
Ignored: Count = 0 
IsDirty: false 
Missing: Count = 0 
Modified: Count = 0 
Removed: Count = 0 
RenamedInIndex: Count = 0 
RenamedInWorkDir: Count = 0 
Staged: Count = 0 
Unaltered: Count = 0 
Untracked: Count = 0 
added: Count = 0 
dispatcher: Count = 9 
ignored: Count = 0 
isDirty: false 
missing: Count = 0 
modified: Count = 0 
removed: Count = 0 
renamedInIndex: Count = 0 
renamedInWorkDir: Count = 0 
staged: Count = 0 
statusEntries: Count = 0 
unaltered: Count = 0 
untracked: Count = 0 
Results View: Expanding the Results View will enumerate the IEnumerable 

Il ne semble pas montrer la différence entre le local et le distant comme le fait la ligne de commande. Comment l'obtenir pour montrer la même chose que la commande d'état de la ligne de commande?

Répondre

1

Status vous donne juste l'état réel du dépôt - les différences entre HEAD et l'index, joint sur les différences entre l'index et le répertoire de travail. Il n'inclut aucune des métadonnées supplémentaires telles que les comptes avant/arrière.

Si vous voulez savoir comment votre branche se rapporte à sa branche de suivi, alors vous pouvez regarder TrackingDetails de la branche. par exemple:

Console.WriteLine("Your branch is ahead of '{0}' by {1} commits and behind by {2} commits.", 
    branch.TrackingBranch.CanonicalName, 
    branch.TrackingDetails.AheadBy, 
    branch.TrackingDetails.BehindBy); 
+0

Merci pour l'explication et le code! Je suis plus familier avec Subversion et TFS, donc Git prend un peu de temps pour s'y habituer. – BardMorgan