With these modest requirements, David, please try the port and open issues for anything that bugs you about it.
Am Fr., 15. Feb. 2019, 02:14 hat David T. Lewis lewis@mail.msen.com geschrieben:
Hi Torsten,
Thank you very much for asking about this, and thanks to Nicolas for the explanations.
As a package maintainer (OSProcess and others), I want to be able to provide continued support for Pharo users, and it would probably be helpful if I could read and write to Tonel as an external format. I am also interested in being able to browse and read the projects (many of them quite excellent) that are being developed in Pharo from my Squeak image.
I am a big fan of git, but I do not care about integrating it with the image (Squeak/Pharo) because I prefer using the in-image tools in Squeak, and when I do use git, I prefer to use git tools directly.
I am not well informed about this topic, but overall I would say that being able to read and write Tonel format from Squeak would be very helpful, and I would probably not care very much about version control integration.
Thanks again for asking,
Dave
On Thu, Feb 14, 2019 at 11:15:23PM +0100, Nicolas Cellier wrote:
I think that we should at least support the input/output of tonel
packages
for inter-operability. Since the git repositories are metadataless, we can't do much more
without
a lot of work.
Since tonel has no support for timestamps, it looses authorship (it is replaced by committer-ship). If we don't want to loose authorship, then we need to port whole history
to
git with known initials <-> git(hub) account database. This is currently working for single package with complex graph (to filetree format, but could work for Tonel too). If you want to commit several MC packages in same git repository, then
it's
currently impossible to support complex history. There is generally no information that enables inter-MC-package synchronization (unless some sort of MCConfigurationMap is used, which at least gives a few sync point in history...).
If we want to perform essential operations like commit/pull/merge or
access
essential information as history/revisions/diffs then we have to
- either reproduce the very hard work that began in Pharo: program a git
client inside the image,
- or loose inside image tools.
Squeak MC tools are much more productive than Pharo MC tools:
- they scale well even for massive changes (i did check with auto
generated
Smallapack interface)
- they support cherry-picking: you see and control what you commit
- they are quasi bugfree
- the magma backend provides a few additional features (revisions...)
Pharo team has produced huge effort for the github switch, but it does
not
go without pain. Despite the importance of being visible on github, and profit by state of the art web collaborating tools, i don't see Squeak
able
to take this major turn in near future.
If we want to have mix development with packages maintained both in a MC repository and a git metadataless repository, then we have the problem of finding a common ancestor. I think that this could be doable with some conventions (like storing the .last_known_mc_ancestor in a file) Of course, it's re-introduction of metadata, but the minimal possible,
and
leads to easy to resolve conflicts (that can be automated)...
The last grief I have with Tonel is that it is not syntax agnostic. Since we have a language where we can define compilerClass/parserClass, that's unfortunate (The application i developed in the 90's did use such important feature, it's not just theoretical) It could have been language agnostic with very little effort (remember
the
discussion on Pharo-dev, just using an arbitrary number of [[[ ]]] as method body separators would suffice) For most packages, that will not be a problem though.
Le jeu. 14 f??vr. 2019 ?? 15:17, Torsten Bergmann astares@gmx.de a
??crit :
Hi,
as some of you might already know "Tonel" is a file-per-class format
for
monticello repositories [1].
In Pharo land many projects are already converted to it - as regular
"file
tree" solution faces issues with git handling due to very long file names / deep file hierarchy
(often
leading to trouble on Windows).
Dales's Rowan (a new project/package manager for Smalltalk) supports FileTree and also Tonel repositories [2]. There is also a tool to convert from STORE
(VisualWorks
Source-Code Versioning System) to Tonel format [3].
So I wonder about adoption of Tonel in Squeak land.
Any status/comments?
Thx T.
[1] https://github.com/pharo-vcs/tonel [2] https://github.com/GemTalk/Rowan [3]
https://pharoweekly.wordpress.com/2019/01/20/ann-sett-store-export-to-tonel-...