History Of Ticket 95d893c207
Not logged in
Ticket change [db4083455b] (rid 5653) by drh on 2009-11-13 14:18:15:
  1. Appended to comment:

    drh added on 2009-11-13 14:18:15:
    The "tag" artifact with the most recent timestamp wins.

    A distributed, disconnected database (such as fossil, but also git, hg, etc) exhibits many surprising behaviors if you are used to working with a localized, monolithic, and always-connected database. This is an inherent property of distributed and disconnected systems, I'm afraid.

Ticket change [39fac81260] (rid 5652) by anonymous on 2009-11-13 02:36:44:
  1. Appended to comment:

    anonymous added on 2009-11-13 02:36:44:
    So you're saying if a tag doesn't exist locally, but you cancel it anyway, then do a sync which would create the tag locally ... it gets cancelled at that time? That would certainly violate my own principle of least surprise!

    Related question: what if you sync two repos, each of which has tag FOO on commit BAR, but one of the tags is marked --propagate and the other is not. I assume the --propagate marking wins in this case?

    The semantics of tag creation/cancelling and syncing repos seems pretty subtle...

Ticket change [c8b858e137] (rid 5648) by drh on 2009-11-12 16:41:55:
  1. Appended to comment:

    drh added on 2009-11-12 16:41:55:
    Because Fossil is distributed, it has no way of knowing whether or not the tag exists. It can check its local repository, certainly. But you don't necessarily want to fail the cancel in that case because the tag might exist in some other repository that you just have not synced with yet.

    I will convert this to a "feature request" to issue a warning if the tag does not exist in the local repository.

  2. Change resolution to "Open"
  3. Change type to "Feature_Request"
Ticket change [877a89633e] (rid 5647) by anonymous on 2009-11-12 16:06:26:
  1. Change comment to "When trying to remove a tag (actually I just want to remove it then regenerate it with --propagating set, but I digress) the command "fossil tag cancel X Y" gives no diagnostics when X does not exist. Eg, try "fossil tag cancel XXXXXXX trunk""
  2. Change foundin to "2009-10-11"
  3. Change private_contact to "6ba147a4218010d3c6ffddc5ed73dc017a44bf3c"
  4. Change severity to "Minor"
  5. Change status to "Open"
  6. Change title to "diagnostics for fossil tag cancel X Y"
  7. Change type to "Code_Defect"