2013/7/22 Stephan Beal <sgb...@googlemail.com>

> On Mon, Jul 22, 2013 at 4:47 PM, Jacek Cała <jacek.c...@gmail.com> wrote:
>
>> - project create initializes internal repo ticket number with '1',
>> - project clone adds suffix '.1' to the repo ticket number,
>>
>
> That would require that cloning change the central repo (because it has to
> assign and store the new number for each clone) and would be open to attack
> by simply cloning the repo in a loop. If i clone it 10 times (and i've
> _certainly_ cloned the main fossil repo at least that many times) then i
> end up with 10 different numbers after the dot.
>
> Hundreds, if no thousands, of clones of the core fossil repo and tcl repos
> exists. i don't see this approach working for those two trees.
>
> Or am i missing/misunderstanding some detail?
>

Sorry for not being precise enough. You don't need to change the central
repo. In fact you don't change any repo at all. Only during cloning you
create a new 'seed' ticket number. Each repository has its own, ticket
number prefix, either '1' if it is created or '...n.n.1' if it is cloned.

Together with this 'seed' each repo has it's last_ticket_number variable
(initalized with 1) which is a simple integer added to the seed and
incremented on the 'create ticket' operation. I was to quick to say about
dots only, so the last_ticket_number is added to the seed with, let say, a
dash. Then, a ticket number is constructed as '<seed>-<last_ticket_number>'.

Cloning creates a repository tree:
1
1.1
1.2
1.3
1.2.1
etc.

whereas creating tickets adds an internal ticket number (independent for
each repo) and so you can have:
1-1, 1-2, 1-3
1.1-1, 1.1-2
1.2.1-1, 1.2.1-2,...

Is this clearer?

  Cheers,
  Jacek
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to