Le terme "porcelaine" apparaît occasionnellement dans la documentation de Git. Qu'est-ce que ça veut dire?
Le terme "porcelaine" apparaît occasionnellement dans la documentation de Git. Qu'est-ce que ça veut dire?
Réponses:
La "porcelaine" est le matériau à partir duquel les toilettes sont généralement fabriquées (et parfois d'autres luminaires tels que les lavabos). Ceci est distinct de la "plomberie" (les tuyaux et les drains réels), où la porcelaine fournit une interface plus conviviale avec la plomberie.
Git utilise cette terminologie par analogie, pour séparer les commandes de bas niveau que les utilisateurs n'ont généralement pas besoin d'utiliser directement (la "plomberie") des commandes de haut niveau plus conviviales (la "porcelaine").
Plus important encore, le terme "porcelaine" s'applique aux commandes de haut niveau , avec sortie:
C'est la clé: si vous scriptez, vous devez utiliser si possible des commandes de plomberie , avec des sorties stables. Pas des commandes en porcelaine.
Cependant, vous pouvez utiliser la sortie d'une commande porcelain qui a une --porcelain
option dans le script (voir ci-dessous), comme:
git status --porcelain
git push --porcelain
git blame --porcelain
Bien que git inclut sa propre couche de porcelaine , ses commandes de bas niveau sont suffisantes pour soutenir le développement de porcelaines alternatives.
L'interface (entrée, sortie, ensemble d'options et la sémantique) de ces commandes de bas niveau est censée être beaucoup plus stable que les commandes de niveau Porcelain, car ces commandes sont principalement destinées à un script .
En revanche, l'interface avec les commandes Porcelain est susceptible d'être modifiée afin d'améliorer l'expérience de l'utilisateur final.
Voir « Comment puis-je déterminer par programme s'il y a des modifications non validées? » Comme exemple d'utilisation des commandes de plomberie au lieu de celles en porcelaine.
Remarque: Une commande porcelaine peut avoir une --porcelain
option.
Par exemple:, git status --porcelain
qui désigne une sortie destinée à être analysée .
--porcelain
Donnez la sortie dans un format facile à analyser pour les scripts. Ceci est similaire à la sortie courte, mais restera stable dans toutes les versions de git et quelle que soit la configuration de l'utilisateur. Voir ci-dessous pour plus de détails.
Le fil mentionné ci-dessus détaille:
C'est ma faute, dans une certaine mesure.
La forme "à statut court" est destinée aux globes oculaires humains et a été conçue par Junio.
Certaines personnes voulaient également une sortie d'état scriptable, j'ai donc giflé un "--porcelain
" sur le même format qui désactive les fonctionnalités configurables comme les chemins d'accès relatifs et la colorisation, et fait une promesse implicite que nous n'apporterons plus de modifications au format.
L'idée était d'empêcher les gens de créer des scripts--short
, car il n'a jamais été conçu pour être stable.
Alors oui, bien que--porcelain
par lui - même stable et scriptable, il n'est peut-être pas le plus convivial pour les analyseurs. Le-z --porcelain
format " " l'est beaucoup plus, et je le recommanderais à quiconque écrit autour de "git status"
Cela reflète la nécessité, pour les utilisateurs de git, d'utiliser des commandes porcelain dans leurs scripts!
Mais seulement avec une sortie stable (avec --porcelain
)
Comme commenté par william-berg , la même chose pour git push
!
--porcelain
Produisez une sortie lisible par machine.
La ligne d'état de sortie pour chaque référence sera séparée par des tabulations et envoyée à lastdout
place destderr
.
Les noms symboliques complets des arbitres seront donnés.
Comme John Glassmyer le propose dans les commentaires :
Peut -
--porcelain
être que le sens ici est "produire des résultats propres à la consommation par des scripts en porcelaine" .
Et cela pourrait être soutenu par le tout premier cas d' --porcelain
introduction d '" option"
(avant git status --porcelain
, commit 6f15787, septembre 2009, git 1.7.0 ,
avant git push --porcelain
, commit 1965ff7, juin 2009, git 1.6.4 ):
-p
--porcelain
Afficher dans un format conçu pour la consommation de la machine.
Commit b5c698d, octobre 2006, git 1.4.4
La nouvelle option permet au format de sortie natif de la commande d'émettre une sortie plus facile à gérer par Porcelain .
git push
a une anomalie similaire lisible par machine --porcelain
.
--porcelain
ici est "produire des résultats propres à la consommation par des scripts en porcelaine".
git diff-tree --word-diff=porcelain
Le monnayage et l'utilisation du terme "porcelaine" en git ont en fait été commis par Mike Taht, tout en perdant autrement une vive discussion avec Linus Torvalds.
http://www.gelato.unsw.edu.au/archives/git/0504/0881.html
En fait, l'un de mes espoirs était que d'autres SCM pourraient simplement utiliser la plomberie git.
Mais alors je vous suggère vraiment d'utiliser "git" lui-même, pas n'importe quel "libgit
". C'est-à-dire que vous prenez toute la plomberie comme de vrais programmes, et au lieu d'essayer de vous lier à des routines individuelles, vous le scripteriez .Si vous n'en voulez pas, je ne le ferai pas.
Cependant, il est toujours judicieux de séparer la plomberie de la porcelaine .
La porcelaine est un nom mignon pour les programmes et les suites de programmes selon Core Git, présentant un accès de haut niveau à Core Git. Les porcelaines exposent plus une interface SCM que la "plomberie".
Les commandes en porcelaine sont conçues pour la consommation humaine, contrairement aux commandes dont la sortie est facile à analyser pour les ordinateurs. git status
serait un exemple.
--porcelain
option, elles concernent la consommation de la machine.
git status --porcelain
: Donnez la sortie dans un format facile à analyser pour les scripts. (...) mais restera stable dans toutes les versions de Git et quelle que soit la configuration de l'utilisateur.
git status --porcelain
a un format stable qui peut être analysé, mais la status
commande elle-même est conçue pour être accessible à l'utilisateur (par opposition à, par exemple,git ls-files
).
--porcelain
option déroutante !?--porcelain
option, puis utilisez la sortie pour les scripts. Fondamentalement, les auteurs de git promettent implicitement de ne rien y changer, de sitôt. exemple: je peux utiliser git status --porcelain
et utiliser la sortie pour les scripts et ce serait parfaitement correct.For more detail, checkout VonC's answer.
--porcelain
sur des commandes déjà "porcelaine" pour obtenir la fonctionnalité "pseudo-plomberie", cela se marie très bien avec la conception générale de l'interface utilisateur de Git ...;)
--plumbing
(puisque vous êtes plombier cette fois, pas un utilisateur régulier de "porcelaine").
La réponse de Greg Hewgill est exactement correcte. Notez qu'il existe des porcelaines alternatives disponibles pour Git, y compris Easy Git, yap, pyrite et vng. Chacun est destiné à rendre Git plus facile à apprendre / à utiliser pour une partie de la communauté. Les liens vers tous ces projets se trouvent sur la page Easy Git: http://people.gnome.org/~newren/eg/ .
La porcelaine est un nom mignon pour les programmes et les suites de programmes selon Core Git, présentant un accès de haut niveau à Core Git.
Il y a deux significations distinctes de porcelaine dans git.
Ces deux significations, bien qu'elles puissent être argumentées ne sont pas strictement contradictoires, peuvent apparaître contradictoires.
Le livre officiel de Pro Git :
Mais comme Git était initialement une boîte à outils pour un système de contrôle de version plutôt qu'un VCS complet et convivial, il a un certain nombre de sous-commandes qui effectuent un travail de bas niveau et ont été conçues pour être enchaînées de style UNIX ou appelées à partir de scripts. Ces commandes sont généralement appelées commandes «plomberie» de Git, tandis que les commandes plus conviviales sont appelées commandes «porcelaine».
--porcelain
/ =porcelain
optionsDe nombreuses commandes git viennent avec une --porcelain
possibilité qui est destiné à des scripts.
git status
« documentation :
--porcelain[=<version>]
Donnez la sortie dans un format facile à analyser pour les scripts. Ceci est similaire à la sortie courte, mais restera stable dans toutes les versions de Git et quelle que soit la configuration de l'utilisateur. Voir ci-dessous pour plus de détails.
git diff
la documentation de :
--word-diff[=<mode>]
porcelaine
Utilisez un format de ligne spécial destiné à la consommation de scripts.