Fossil User Forum

Bug: private branches closed by notation in a public record
Login

Bug: private branches closed by notation in a public record

Bug: private branches closed by notation in a public record

(1) By Richard Hipp (drh) on 2019-10-03 19:13:42 [source]

Apparently, if you have a private branch and then you "fossil merge --integrate" that private branch into a public branch, the manifest for the public check-in will contain a "close" tag that references the last check-in of the private branch. In other words, a reference to a private check-in is added to a public check-in.

Furthermore, after you do this a few times, the fossil test-integrity command will report that the private check-ins are "phantoms".

An example of the extra "close" tag can be seen at https://www.sqlite.org/src/artifact/cb3e2be674316?ln=1844. There is no 91875000a76cad5b7615 check-in within the public SQLite tree. That check-in is on a private branch.

This problem is mostly harmless, and it has been around for a long time, so I do not feel the need to fix it for the 2.10 release.

(2) By anonymous on 2019-10-03 21:46:49 in reply to 1 [link] [source]

the manifest for the public check-in will contain a "close" tag that references the last check-in of the private branch.

I don't see that as a real problem. In fact, it gives me an idea for another issue.

Because a private branch/commit is not listed as a merge parent of a public commit, information is lost.

However, a tag like "merged_from" could retain the information while allowing Fossil to not complain about a missing artifact.

If a manifest or control artifact has a "merged_from" tag, then if the referred artifact is present, the time line can show the merge-parent relationship. If not, Fossil would not complain about the artifact being missing.

This way:

  1. The repo containing the private branch can still show the merge-parent relationship.

  2. If the private branch is even published, the relationship would become visible to others.

  3. The timeline could optionally show that a merge from a private branch occurred despite the artifact not being present.

(3) By Florian Balmer (florian.balmer) on 2019-10-04 12:00:26 in reply to 1 [link] [source]

A possible fix is contained in this branch, and an alternative solution (with a separate control artifact to hold the +close tag) is discussed in this post.