Le terme "porcelaine" apparaît occasionnellement dans la documentation de Git. Qu'est-ce que ça veut dire?
Réponses
Trop de publicités?« Porcelaine » est le matériau de quelles toilettes sont habituellement faites (et parfois autres montages tels que lavabos). Ceci est différent de « plomberie » (le réel tuyaux et drains), où la porcelaine offre une interface plus conviviale pour 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 ») à partir des commandes de haut niveau plus facile à utiliser (la « porcelaine »).
Plus important encore, le terme de "porcelaine" s'applique aux commandes de haut niveau, avec la sortie:
- destiné à être lisible par l'homme
- ne doit pas être analysée
- susceptible de modifications/évolutions
Ce qui est essentiel: si vous script, vous devez les utiliser si possible de plomberie commandes, stables et les sorties. Pas de porcelaine commandes.
Toutefois, vous pouvez utiliser dans le script de la sortie d'une porcelaine de commande qui a un --porcelain
option (voir ci-dessous), comme:
git status --porcelain
git push --porcelain
git blame --porcelain
Bien que git comprend sa propre couche de porcelaine, ses commandes de bas niveau sont suffisantes pour soutenir le développement d'autres porcelaines.
L'interface (d'entrée, de sortie, définissez des options et de la sémantique) à ces commandes de bas niveau sont destinés à être beaucoup plus stable que la Porcelaine niveau des commandes, parce que ces commandes sont principalement pour une utilisation dans des scripts.
L'interface de Porcelaine commandes sur l'autre part, sont soumis à des changements afin d'améliorer l'expérience des utilisateurs finaux.
Voir "Comment puis-je déterminer par programme si il y a des modifications non validées?" comme un exemple à l'aide de la plomberie des commandes à la place de la porcelaine.
Remarque: Une porcelaine de commande peut avoir un --porcelain
option.
Par exemple: git status --porcelain
, qui désigne une sortie destinée à être analysé.
--porcelain
Donner le résultat dans un format facile à analyser format pour les scripts. Ceci est similaire à la courte sortie, mais restent stables à travers des versions git et indépendamment de la configuration de l'utilisateur. Voir ci-dessous pour plus de détails.
Le fil mentionné ci-dessus les détails:
C'est de ma faute, à un certain degré.
Le "court-statut" formulaire est destiné pour l'homme des globes oculaires, et a été conçu par Junio.
Certaines personnes voulaient un scriptable sortie de l'état, trop, donc j'ai giflé un "--porcelain
" sur le même format qui désactive les fonctions configurables comme les chemins relatifs et de la colorisation, et fait une promesse implicite que nous n'allons pas faire d'autres changements de format.
L'idée était d'empêcher les gens de script autour de--short
, parce qu'il n'a jamais été destiné à être stable.
Donc oui, tout--porcelain
par lui-même est stable et scriptable, c'est peut-être pas le plus sympathique aux analyseurs. Le "-z --porcelain
" le format est beaucoup plus, et je le recommande à toute personne de script autour de "git status"
Qui reflète la nécessité, pour les utilisateurs de git, à l'aide de la porcelaine commandes dans leurs scripts!
Mais seulement avec la production stable (avec --porcelain
)
Comme commenté par william-berg, il en va de même pour l' git push
!
--porcelain
Produire lisibles à la machine sortie.
L'état de la sortie ligne pour chaque ref seront séparés par des tabulations et envoyé àstdout
au lieu destderr
.
Le plein les noms symboliques des refs sera donné.
Comme John Glassmyer propose dans les commentaires:
Peut-être le sens de l'
--porcelain
ici est de "produire de sortie adapté pour la consommation en porcelaine de scripts".
Et qui pourrait être pris en charge par le tout premier cas de "--porcelain
option" introduction
(avant d' git status --porcelain
, commettre 6f15787, septembre 2009, git 1.7.0,
avant d' git push --porcelain
, commettre 1965ff7, juin 2009, git 1.6.4):
-p
--porcelain
Afficher dans un format conçu pour la machine de la consommation.
S'engager b5c698d, octobre 2006, git 1.4.4
La nouvelle option rend la commande native du format de sortie pour émettre de la sortie qui est plus facile à manipuler par de la Porcelaine.
Les pièces de monnaie et de l'utilisation du terme "porcelaine" dans git a été fait par Mike Taht, tout le contraire de perdre une violente dispute avec Linus Torvalds.
http://www.gelato.unsw.edu.au/archives/git/0504/0881.html
En fait, un de mes espoirs était que d'autres SCM pourrait simplement utiliser la commande git de plomberie.
Mais ensuite, je suggère que vous utilisez "git" lui-même, non pas "libgit
". C'est à dire vous prenez tous la plomberie comme de vrais programmes, et au lieu d'essayer de lien à l'encontre de certaines routines, vous auriez du script .Si vous ne le voulez pas, je ne vais pas le faire.
Fait encore plus intéressant de séparer la plomberie de la porcelaine.