hpi-swa / squot Goto Github PK
View Code? Open in Web Editor NEWSqueak Object Tracker - Version control for arbitrary objects, currently with Git storage
License: Other
Squeak Object Tracker - Version control for arbitrary objects, currently with Git storage
License: Other
Working with diffs instead of whole snapshots should speed up regular operations such as saving new versions.
Author: Fabio Niephaus
Message:
We talked about that
The merge base should be taken into account, so Squot does not propose to revert the current changes that do not come from the merged version.
Author: Fabio Niephaus
Message:
It would be great to be able to provide feedback straight from the UI. Maybe you can find someone to add this feature for you, while you are busy implementing more important features... ;)
Author: Fabio Niephaus
Message:
Instead of fetching from all remotes, the user could be ask from which remote to fetch when clicking the Fetch
button. Everything could be selected in the list by default, so one also needs to click ok to fetch from all
Untrack files also need to be merged into a branch.
Currently, "untracked" changes on a feature branch get lost when the branch is merged.
Author: Fabio Niephaus
Message:
When '.git/refs/remotes' is missing, I cannot open the UI, because of an FileDoesNotExist
exception.
It should be possible to "ignore" a tracked object (like gitless allows). This could be toggled on the object itself, for example in the commit dialog. It is also desirable to ignore only part of a tracked object (e. g., a single method of a package artifact).
Since we do not use a traditional git working copy, there is no reflog for HEAD. To not lose track of what is being checked out or committed in in-image working copies, a reflog should be created for each working copy in the image.
How to name this reflog? Should there also exist a symbolic reference for this working copy? Look up how Gitless stores its heads (one per branch).
Author: Fabio Niephaus
Message:
Test
Author: @krono
Message:
Put a selector to #enabled:
for each button, for example for "Commit", so that it is not enabled when there's no proper selection
And more importantly, removing the SquotWorkingCopy does not make the image shrink again. Investigate what holds onto blobs and packs and implement something to prevent keeping large byte arrays.
Author: Fabio Niephaus
Message:
There still is a halt in the actionFetch code path.
Author: Fabio Niephaus
Message:
Start a new project, add first commit, then push. This results in a MNU UndefinedObject>>parents
in GitHistoryWalker>>visitCommit:
. Apparently, the commit is nil...
During history walking, a lot of time is spent in the garbage collector. The code should be investigated to find places where objects can be reused or where objects are created unnecessarily. Also consider more aggressive caching.
Author: @fniephaus
Message:
I am getting a lot of DirectoryDoesNotExist
and Unable to open ...
errors. Interestingly, it seems to be working for a short period of time. Once one of these errors occur, all future file system access operations fail. Reopening the image seems to "fix" this, but I'm getting an error again, as soon as I try to commit something :(
Probably v0.1.0
or something like that, and then we should follow http://semver.org/.
Author: Fabio Niephaus
Message:
Wait for it
The resulting packfile is corrupt.
Workaround: do not pack the repository with FileSystem-Git. Use the regular git client instead.
GitHub terminates the connection if nothing is supplied quickly enough. Pushing the first 361 commits of this repository did not work with FileSystem-Git. I had to use the non-Smalltalk git client instead.
Workaround: reset packs inst var to nil and restart the method looking into the packs.
...and cannot be resolved subsequently. Investigate what goes wrong.
Depends on #3
Following up on this discussion: how should the tracking work? Shall it track categories, packages, both, ...?
(NeedGitCredentials for: url) signal
does not do anything in my image.
Where do I have to add my credentials?
There should be a button in the UI to temporary clone the Squot repo and load the latest master version from it, so the SWE students can easily update Squot&Co.
The other path would be to package Squot&Co. as Monticello versions and provide those via the update stream. This would need at least a simple GitCommit --> MCVersion(s) conversion.
Should be labelled "reset to this commit".
Do not touch the object memory, only do loadedHistorian version: theSelectedSquitVersion
, to move the ref. This can be used to manually fast-forward the master to a remote tracking branch (origin/master), until a proper merge operation (with fast-forward capability) is implemented.
Author: Fabio Niephaus
Message:
Add menu items for merging to branch and commit list
When adding a new project, the tool does not display that there is a master
branch. Not sure what needs to be done here.
Author: Fabio Niephaus
Message:
This would help reading the list
I did push successfully twice to GitHub with FileSystem-Git today, but for some sets of commits, GitHub simply closes the connection after receiving a part of the pack content. For the same set of commits, both a local test server and Bitbucket accepted the push without issues.
Have to keep an eye on this to find out what is the cause.
It returns only the directory, but not the refs inside.
Currently, done
is sent immediately, hence a remote will always send the whole repository back as a packfile. Proper negotiation should be implemented to reduce traffic (and fetch time) as described in pack-protocol and http-protocol
Author: Fabio Niephaus
Message:
Can I haz pull button
When I click fetch, I get an "Unknown stream code 32" error in readSideBandResponseIfData:ifMessage:ifError:ifZero:
.
Also, I get an ConnectionClosed
error when trying to submit feedback.
However, WebClient httpGet: 'https://google.com'
works as intended. Not sure what is going on...
A tree view would work well in the commit dialog.
It could be used to display per method changes per class. Maybe, you can also find a way to display all changes for a class or even one big diff for everything.
While it is mandatory to allow the set of pack files to change over time, rediscovering them over and over during an operation such as walking the history is unnecessary. There should be a way to delimit an operation and cache the pack file references and the pack index files' content during that operation.
branch.name.remote is the remote name and branch.name.merge is the reference at the remote
Create a new class and add it to some new category. Then start a new project in the GitBrowser. Currently, you cannot add the category, because it does not appear in the package list. In my current image, I have replaced this list with the same list the Browser displays. However, when I add the newly created category, a new commit is empty. Have tried different things, can't get it working
Inspecting the VM process with Process Explorer revealed that the file handles for pack files stay open, even though the corresponding FSHandle instances are already garbage collected or closed, as far as the object memory is concerned.
@fniephaus can you please check if the same is true for Mac OS? Just work a while in your image and check the process after some git operations.
Snippets to find (officially) open files:
FSStream allSubInstances select: [:ea | (ea instVarNamed: 'handle') reference filesystem = FileSystem disk]
FSFileHandle allInstances select: [:ea | ea isOpen]
The tools to inspect the actually open file descriptors or handles vary by OS, of course.
Currently, the default behavior for Object for taking snapshots is to make a #copy
. This breaks the meta object protocol because #allInstances
will include the objects contained in snapshots.
Author: Fabio Niephaus
Message:
Since Squot does not support git+ssh at the moment, it would be good to somehow ensure a user can only enter HTTP(S) URLs.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.