-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Produce a squashed version of SYCL history to make the life of the SYCL SC committee simpler #617
Comments
You were quicker. Alternative solution created by GPT:
Advantage of this solution is that it automatically only adds the new commits added since it was called last time. So it can be run in post-commit without having to recreate the branch every time and it refers to the original commit. Disadvantage creating many commits is much slower than with Ronan's solution. But given that this only done once it shouldn't matter. |
Whatever solution we pick, regenerating the branch from scratch seems idempotent (generating new hash values every time the script is done would be a nightmare) and is surprisingly done in only a fraction of second. |
This is to be used as described in SYCL SC internal https://gitlab.khronos.org/syclsc/Specification/-/issues/6 |
We have tried applying all the SYCL SC commits on this squashed branch (thank you, @keryell!) and it looks good so far. |
Is there any update on setting up a hook to update a squashed branch? Thanks. |
I created two new squashed branches named "main-squashed" and "sycl-2020-squashed". The first contains the squashed commits from the "main" branch and the second contains the squashed commits from the "sycl-2020" branch. Which does the SYCL SC project want to use? I thought you were tracking the SYCL 2020 spec, not the evolving SYCL-Next spec, right? In that case, I presume you want the "sycl-2020-squashed" branch. I decided to use a @rolandschulz's script as a starting point. I liked that it includes the "cherry picked from ..." messages, and it doesn't require an external dependence on git-filter-repo project. The speed of running the command does not seem to be an issue. BTW, I needed to choose some starting point for the squashed history. I arbitrarily chose the "SYCL-2020/final-rev8" tag as the starting point, so the branches above contain squashed commits starting at that point. I can choose a different starting point if you prefer. |
See #657 for the script I used to create these branches. Once I get feedback from the SYCL-SC group about which branch you want, I'll set up an automated CI task to update it whenever a PR is merged. |
My script generates a simplified history since the beginning. I am confused about why mixing squashed and unsquashed? 🤔 |
Would it be prohibitively difficult to have both a squashed SYCL 2020 branch and a squashed SYCL Next branch? SYCL SC is currently tracking SYCL 2020, but at some point in the future it will switch to tracking the SYCL Next branch (or SYCL YYYY where YYYY is the next release). If there isn't a squashed SYCL Next branch, we'll run into the same problem that this issue is trying to solve. It's also looking likely that SYCL SC will need to cherry-pick specific changes from the SYCL Next branch even while being based on SYCL 2020, and the squashing would help with that as well. |
I agree with the cherry-picking point. Due to that I would also like to request squashed versions of both branches. |
@VerenaBeckham @etomzak @AByzhynar I put an example of what a simplified history is: https://github.com/KhronosGroup/SYCL-Docs/tree/squashed-main
Interestingly, the link on the PR in the commit title correctly send to the original PR and its commits.
Note that it will be misleading when clicked from the SYCL-SC repository, but we could add a more precise link.
Here is the current recipe using https://github.com/newren/git-filter-repo quite faster than the old
git filter-branch
:The text was updated successfully, but these errors were encountered: