528 votes

Que signifie le terme porcelaine dans Git?

Le terme "porcelaine" apparaît occasionnellement dans la documentation de Git. Qu'est-ce que ça veut dire?

612voto

Greg Hewgill Points 356191

« 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 »).

513voto

VonC Points 414372

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 de stderr.
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):

git blame --porcelain:

-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.

66voto

dave taht Points 81

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.

28voto

Johnsyweb Points 45395
<blockquote> <p>La porcelaine est joli nom pour les programmes et les suites du programme selon base git, présentant un haut niveau accès au noyau git. Porcelaines exposent plus d’une interface SCM que la « plomberie ».</p> </blockquote> <p>--<a href="https://git.wiki.kernel.org/index.php/Porcelain"><em>Porcelaine</em>, Git Wiki</a></p>

7voto

dahlbyk Points 24897

Commandes de porcelaine sont conçus pour la consommation humaine, par opposition à commandes dont la sortie est facile pour les ordinateurs à analyser. ``serait un exemple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X