It works the other way: as long as there is a reference to a commit (a tag, a branch), the commit stays in the repository. Unreferenced commits get garbage-collected.
So you can definitely tag something even if you rewrite the corresponding branch later. The tag will point to a commit that doesn't exist anymore on you branch, but that's to be expected. To be clear you'll end up with something like this: * [Tip of branch: wip/6.0] Commit B (rewritten) | * Commit A (rewritten) | | * [Tag: 6.0.0.Alpha1] Commit B (original) | | | * Commit A (original) | | * | Some commit that was added on master (5.4): on branch wip/6.0 only | | | / * Common ancestor (some | ... That looks reasonable to be considering you want to rewrite history on wip/6.0. You can avoid it and keep a flat structure, but it will require different strategies that don't involve rewriting history (e.g. merging 5.4 into wip/6.0 instead of rebasing). Yoann Rodière Hibernate NoORM Team yo...@hibernate.org On Tue, 27 Nov 2018 at 16:43, Steve Ebersole <st...@hibernate.org> wrote: > One thing that just occurred to me and Jan confirmed on Gitter... > Maintaining those tags will be impossible as long as we have to continue to > re-write history for 6.0 to integrate changes from master - merge is just > not an option there. After each re-write the commits that those tags point > to are gone. > > > On Tue, Nov 27, 2018 at 9:02 AM Steve Ebersole <st...@hibernate.org> > wrote: > >> Then Chris and Andrea might as well push it to upstream as soon as they >> are done integrating the latest changes from master. >> >> On Tue, Nov 27, 2018 at 9:01 AM Yoann Rodiere <yo...@hibernate.org> >> wrote: >> >>> Yes, it seems we all agree then. Great :) >>> >>> About the "labelling" part, yes, that's what I meant. >>> >>> Yoann Rodière >>> Hibernate NoORM Team >>> yo...@hibernate.org >>> >>> >>> On Tue, 27 Nov 2018 at 15:52, Steve Ebersole <st...@hibernate.org> >>> wrote: >>> >>>> We seem to be "arguing" the same thing. As I said above, I am fine >>>> with moving it upstream. Just making sure everyone has the same >>>> expectations (re-writing, eventual removal, etc) of that upstream branch >>>> because they are not typical of our upstream branches. >>>> >>>> I would not really call it "hidden away", but I agree that it should be >>>> easy to access. >>>> >>>> Not sure what you mean about your "labelling" point. Label how? Maybe >>>> you are referring to the "expectations"? I agree that the name `wip/...` >>>> already implies these expectations. Again, that is exactly why we borrowed >>>> that convention from Vlad in the first place. >>>> >>>> >>>> On Tue, Nov 27, 2018 at 8:27 AM Yoann Rodiere <yo...@hibernate.org> >>>> wrote: >>>> >>>>> I may be wrong, but I understood your message as an argument that >>>>> moving 6.0 to upstream would be bad, because having a topic branch >>>>> upstream >>>>> is not a good practice. >>>>> >>>>> Topic branches are typically short-lived and focus on a specific >>>>> feature or bugfix. I agree topic branches in upstream would be a mess. >>>>> >>>>> But let's be honest: wip/6.0 has been around for years, includes tons >>>>> of different improvements, and has impacts in many places of the codebase >>>>> (nearly 10,000 files from what I can see) . It hardly qualifies as a topic >>>>> branch anymore, and even if we extend the definition to include such a >>>>> massive changeset, we can probably agree it's not your typical "change a >>>>> dozen files and we're done" topic branch. Wouldn't an atypical branch call >>>>> for an atypical workflow? >>>>> >>>>> Besides... and perhaps more importantly, it's the branch everyone >>>>> seems to be working on these days. Once 6.0.0.Alpha1 has been released, it >>>>> would seem odd for all that work to be hidden away in someone's fork, be >>>>> it >>>>> the project leader's. If the branch is regularly rewritten, so be it: at >>>>> least it should be easily found. >>>>> >>>>> Again, no problem with labelling it differently to make clear that we >>>>> offer no guarantee of a stable history on that branch. To me, the name >>>>> "wip/6.0" makes this very clear already. >>>>> >>>>> >>>>> Yoann Rodière >>>>> Hibernate NoORM Team >>>>> yo...@hibernate.org >>>>> >>>>> On Tue, 27 Nov 2018 at 14:42, Steve Ebersole <st...@hibernate.org> >>>>> wrote: >>>>> >>>>>> On Tue, Nov 27, 2018 at 7:22 AM Davide D'Alto <dav...@hibernate.org> >>>>>> wrote: >>>>>> >>>>>> > +1 for the creation of the branch upstream and everything Yoann >>>>>> said. >>>>>> > >>>>>> > One curiosity, once there is an alpha, why would you delete the >>>>>> whole >>>>>> > branch? >>>>>> > Couldn't you change everything on the existing branch without >>>>>> deleting it? >>>>>> > It's unusual to rewrite the history of upstream branches but we have >>>>>> > done it before. >>>>>> > >>>>>> >>>>>> Well first, I never said it would be deleted after the Alpha. I said >>>>>> it >>>>>> would be deleted *at some point*, meaning at some point after 6 is >>>>>> moved to >>>>>> master. >>>>>> >>>>>> Also, IMO, topic branches upstream are generally speaking a very bad >>>>>> idea. >>>>>> So this is something we hardly ever do - maybe y'all do on other >>>>>> projects, >>>>>> dunno. But either way, it is very common for a topic branch to go >>>>>> away >>>>>> eventually. >>>>>> >>>>>> As far as re-writing history, sure it is unusual but we are already >>>>>> in the >>>>>> realm of unusual merely by having a topic branch upstream >>>>>> >>>>> _______________________________________________ >>>>>> hibernate-dev mailing list >>>>>> hibernate-dev@lists.jboss.org >>>>>> https://lists.jboss.org/mailman/listinfo/hibernate-dev >>>>>> >>>>> _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev