[squeak-dev] (1) Bug fixes, and (2) potential improvements to FileSystem-Git

Jakob Reschke forums.jakob at resfarm.de
Wed Nov 11 13:34:46 UTC 2020


Hi Tony,

I suggest you use the Git Browser to commit the changes. Clone your
fork or add it from a directory to the Git Browser, make sure your
changes are present in the image, then commit them (since it's your
fork it does not matter on which branch) and push. After that, you can
file a pull request on GitHub (there are no in-image buttons to do
that).

>
>  - repair GitRepository >> collectTagsFromLooseRefs when the repo has
   tags including a '/'
>

That method no longer exists and I remember having fixed this behavior
or something similar like it already. I did some larger refactoring
this year that routes all reads and writes through a "unit of work"
object, so the tag access has moved there as well. The purpose of this
change was not to reopen and re-read files repeatedly during coherent
operations such as creating a new commit or assembling the log, to
make things faster. Please make sure that your FileSystem-Git is
up-to-date. You can update it together with Squot and tools via the
blue drop down button on the Git Browser window, or via Metacello.

Looking forward to inspecting your changes, but it may be a while
until I can follow up on them.

Note that github:// Monticello repositories are only used by Metacello
to download something, they cannot be used for actual work.

Kind regards,
Jakob

Am Mo., 9. Nov. 2020 um 14:01 Uhr schrieb Tony Garnock-Jones
<tonyg at leastfixedpoint.com>:
>
> Hi Jakob, all,
>
> I have a few bug fixes and potential enhancements to FileSystem-Git
> ready, but I can't figure out how to add a new github:// repository to
> Monticello. I've made my own fork of Squot at the github end, and now I
> just need to add it to my image somehow...
>
> The fixes I have are:
>
>  - repair GitReference class >> validateReferenceName: to follow the
>    rules in the git docs
>
>  - repair GitRepository >> collectTagsFromLooseRefs when the repo has
>    tags including a '/'
>
>  - remove restriction on GitTag's object field: tags can point at any
>    git object, not just commits
>
> The potential enhancements I have are:
>
>  - a GitTreeDiffBuilder class which digs into a bit more detail than
>    the existing GitDiffCreator; namely, it classifies changes into:
>      GitTreeDiffModeChangedItem
>      GitTreeDiffNewItem
>      GitTreeDiffRenamedItem
>      GitTreeDiffSubmoduleChangedItem
>      GitTreeDiffTypeChangedItem
>      GitTreeDiffChangedItem
>      GitTreeDiffDeletedItem
>
>  - GitTaglikeObject >> contributor, which answers author for commits
>    and tagger for tags
>
>  - GitTaglikeObject >> messageSummary, which answers the first line of
>    the commit message on the assumption that this contains a summary
>    of the whole thing (a common convention)
>
>  - GitTree >> followPath:, for digging into a tree when working in a
>    git context and not a simulated-filesystem context
>
>  - GitTreeEntry >> entryCode, answering something analogous to
>    GitStorableObject class >> typeCode, but for tree entries
>
> I'd prefer to figure out how to contribute the changes using the
> in-image github workflow, but for reference, I've attached fileouts of
> the changes.
>
> Regards,
>   Tony


More information about the Squeak-dev mailing list