1 |
On Thu, Mar 26, 2009 at 12:15, Caleb Cushing <xenoterracide@×××××.com> wrote: |
2 |
> On Wed, Mar 25, 2009 at 10:11 PM, Jonas Bernoulli <jonas@×××××××.li> wrote: |
3 |
>> |
4 |
>> For various reasons "etc-under-version-control" loses much of the |
5 |
>> power and/or ease of use that comes with the underlying vcs. Much of |
6 |
>> this being due to the fact that the files being kept in the repository |
7 |
>> are totally unrelated. |
8 |
>> |
9 |
>> The solution to this obviously is to maintain a separate branch for |
10 |
>> each package. |
11 |
> |
12 |
> I have to ask, what's the 'obviousness' here? |
13 |
|
14 |
What I basically said is "the problem is that unrelated files live in |
15 |
the same branch, the solution obviously is to use separate branches". |
16 |
While one might disagree that this actually is a problem the |
17 |
conclusion can't really get much more obvious - it might even qualify |
18 |
as a tautology :-) |
19 |
|
20 |
> I don't see why each |
21 |
> package should have it's own branch, if they are not related, |
22 |
|
23 |
Because this allows you to say "these changes I have made to $package |
24 |
are grap, make them go way" (git reset --hard HEAD~n). Without |
25 |
seperate branches you would have to create a new commit in which only |
26 |
some files where reverted to previous state (git checkout HEAD~n -- |
27 |
file; git commit file). This clutters history. |
28 |
|
29 |
Or some user has problem configuring a given program, and asks on the |
30 |
forum. With separate branches she could be pointed at a particular |
31 |
branch in some repository which contains a working configuration for |
32 |
that application. She certainly is not interested in the config files |
33 |
of some other applications she has never heard about before. |
34 |
|
35 |
> A they should have their own repo, |
36 |
> B, they should be in the same branch. |
37 |
|
38 |
They should be in different repositories but in the same branch? That |
39 |
ain't gonna work :-) What do you mean by this? |
40 |
|
41 |
(I think you are saying that each package should have it's own |
42 |
repository. Some things you said however seam to contradict this.) |
43 |
|
44 |
> their relation is relative as they are all configs for a system. |
45 |
|
46 |
True. But not all config files are related. Setting up a screensaver |
47 |
is totally unrelated to your firewall. |
48 |
|
49 |
Some things are related however and a particular configuration of |
50 |
package A might only make sense when package B is configured a certain |
51 |
way. Therefor confsink has to support something like @sets. |
52 |
|
53 |
> I'm a big git user so I'm trying to understand conceptually what you're on about. |
54 |
|
55 |
Think git-submodule where the submodules do not have to live in |
56 |
dedicated subdirectories. I will elaborate on this shortly. |
57 |
|
58 |
This is way having all branches of all packages in the same repository |
59 |
is better than having them split into separate repositories. You can |
60 |
easily add some other file tracking the states of the installed |
61 |
"submodules". Of course it is also possible to track this information |
62 |
in some other way: in another branch in an other branch, but this |
63 |
complicates things unnecessarily. |
64 |
|
65 |
Actually implementing git-intermixed as a less restrictive alternative |
66 |
to git-submodules would be the very first step towards confsink. |
67 |
. |
68 |
-- Jonas |