[Python-Dev] cpython: PyUnicode_FromKindAndData() raises a ValueError if the kind is unknown (original) (raw)

Stephen J. Turnbull stephen at xemacs.org
Thu Oct 6 20:24:26 CEST 2011


Éric Araujo writes:

Le 04/10/2011 04:59, Stephen J. Turnbull a écrit :

I'm not familiar with the hg dev process (I use hg a lot, but so far it Just Works for me :), but I would imagine they will move in that direction as well.

"That direction" being "ability to attach notes to existing commits".

It is technically possible to design a VCS in which log messages are ahistorical, and therefore editable at will. I think this would socially be a disaster (though I don't have strong evidence for that view, the fact that the three most popular systems all implement log messages as part of history is very suggestive that some important consideration is involved).

The alternative is attaching notes, which are automatically displayed by the VCS's history-viewing tools.

I doubt it; Mercurial has a very strong view of “history is sacred”; it has taken many, many requests for an optional rebase feature to be added, for example.

While such cultists may prefer Mercurial to git because of the former's conservative position on features like rebase, the devs are apparently pragmatic about editing the DAG. On the one hand, it is now well-understood that rebase is very dangerous. Eg, nobody has blanket permission to push rebased branches to Linus's repos, and exceptions are rarely if ever granted. Many reasons for restricting rebase are technical, and AFAICS the Mercurial devs initially took the conservative position that it's more trouble than it's worth. They were forced to change their minds.

On the other hand, the "Mercurial queues" feature is nothing more nor less than history manipulation (in fact, its history manipulations are theoretically equivalent to those of rebase), but in the form of mq it has always been considered acceptable. The reason that mq is acceptable while rebase is not is simply that references to the parts of history maintained by mq are not propagated by Mercurial itself (except that now there is a limited ability to do so, but still very restricted and only on explicit request).

A "notes" feature should therefore be acceptable, since it doesn't involve any dangerous changing of refs; the only issue is designing the UI.



More information about the Python-Dev mailing list