2010-05-24 2 views
3

Il semble insérer moins de lignes vides plus je tape la commande en bas de la fenêtre du terminal. Si je le tape en haut de la fenêtre du terminal, il insère presque une hauteur de fenêtre entière de lignes vides; si je le tape tout en bas, aucune ligne vide n'est insérée.msysGit: Pourquoi git enregistre-t-il des lignes vides?

Il semble que le programme pager pousse la sortie vers le bas de la fenêtre du terminal, mais je veux que la sortie soit juste en dessous de ma commande ou en haut, comme dans Linux git.

Je peux obtenir le comportement attendu en utilisant git --no-pager log, mais que se passe-t-il si je veux utiliser un pager?

+0

Serait-ce juste un artefact du pager ou terminal Windows? (Le pager est définitivement invoqué, n'est-ce pas?) – Cascabel

+0

Autant que je sache, oui. La sortie est différente si j'utilise --no-pager. msysGit a un fichier less.exe dans son dossier bin \, mais il semble qu'il agit différemment de la version Linux de 'less' (si c'est le pager qui est appelé). –

Répondre

3

Juste pour ajouter quelques éléments:

msysgit a déjà été discuté consoles alternatives issue 29 retour il y a un an (mi-2009: mintty, mais pour cygwin seulement, un capturing window I/O).

Le issue 369 mentionne l'option "git config pager.log off" pour désactiver la pagination pour "log", ce qui peut s'avérer utile pour certains scénarios similaires à celui mentionné par l'OP.

Un problème similaire est en cours de discussion en ce moment (mai 2010) à issue 484 (par nul autre que SO user kusma comme il le souligne dans les commentaires;))

je peux reproduire, mais je ne fais pas pense que c'est un problème avec git lui-même. C'est le pager ; moins sur msys a quelques problèmes sérieux. Certaines expériences avec moins montre que le coupable semble être le drapeau R:

$ git --no-pager diff --color=always HEAD~1 TestSegmentedText.java | less -R 
+0

Merci de m'avoir cité;) Quoi qu'il en soit, oui. Il vaut vraiment la peine de vérifier si moins -R est le coupable dans ce cas aussi. Si c'est le cas, nous nous attendons à avoir une correction dans 'devel' bientôt. – kusma

+0

@kusma: Salut Kusma! Je n'ai pas réalisé que vous étiez également un utilisateur de SO :) J'ai édité la réponse pour ajouter l'attribution appropriée. – VonC

1

C'est le comportement du pager. Par défaut, la sortie Git passe par un papier qui se comporte comme vous le décrivez. (Vous pouvez essayer de trouver un autre téléavertisseur qui agit comme vous voulez, et l'utiliser comme votre téléavertisseur à la place.)

+0

Cela ne semble pas être le cas sous Linux - par exemple, je peux utiliser 'git log --grep = ...' avec un motif qui ne correspond qu'à un commit, et il semble invoquer le pager (je reçois le (FIN) et doivent appuyer sur q) mais ne consomme pas tout le terminal. Pas vraiment sûr comment cela fonctionne, pour être honnête. – Cascabel

Questions connexes