Hello!
There is an issue for this particular problem here:
https://github.com/gittup/tup/issues/214
However your example would work with groups:
> $ cat Tupfile
>
> : |> echo a > %o |>
a.in <group>
> : |> echo 1 > %o |> a--1 <group>
>
> #: |> echo 2 > %o |> a--2 <group>
>
> : <group> |> cat %<group> > %o |> a.out
>
> $ tup init
> .tup repository initialized.
> $ tup
> [ tup ] [0.007s] Scanning filesystem...
> [ tup ] [0.014s] Reading in new environment variables...
> [ tup ] [0.021s] Parsing Tupfiles...
>
> 1) [0.001s] .
> [ ] 100%
>
> [ tup ] [0.026s] No files to delete.
> [ tup ] [0.026s] Checking circular dependencies among groups...
> [ tup ] [0.026s] Generating .gitignore files...
> [ tup ] [0.034s] Executing Commands...
>
> 1) [0.001s] echo 1 > a--1
> 2) [0.001s] echo a >
a.in
> 3) [0.001s] cat %<group> > a.out
> [ ] 100%
>
> [ tup ] [0.043s] Updated.
> $ cat a.out
> a
> 1
> $ <edit the Tupfile, uncomment the third line>
> $ cat Tupfile
>
> : |> echo a > %o |>
a.in <group>
> : |> echo 1 > %o |> a--1 <group>
> : |> echo 2 > %o |> a--2 <group>
> :
> : <group> |> cat %<group> > %o |> a.out
>
> $ tup
> [ tup ] [0.000s] Scanning filesystem...
> [ tup ] [0.006s] Reading in new environment variables...
> [ tup ] [0.006s] Parsing Tupfiles...
>
> 1) [0.001s] .
> [ ] 100%
>
> [ tup ] [0.007s] No files to delete.
> [ tup ] [0.007s] Checking circular dependencies among groups...
> [ tup ] [0.007s] Generating .gitignore files...
> [ tup ] [0.013s] Executing Commands...
>
> 1) [0.001s] echo 2 > a--2
> 2) [0.001s] cat %<group> > a.out
> [ ] 100%
>
> [ tup ] [0.022s] Updated.
> $ cat a.out
> a
> 1
> 2
> $
This simple example would also work with {bins}.
Regards,
FCh