Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Lluís Batlle
Hello,

2011/8/30 Peter Simons sim...@cryp.to:
   Yeah, it would be nice if git had information in commits about which
   branch the commit was initially performed on. This seems like a
   really simple feature, not sure why it doesn't exist.

 personally, I don't see why that information is relevant. Branch names
 are a local affair in Git. It's quite possible for two repositories to
 track the same content using completely different branch names. So why
 bother recording the name if it doesn't have any significance outside of
 the repository? Other DVCS make a lot of fuss about branch names, like
 monotone, but I don't see any gain in a distributed project.

I'm very used to having branches and their names tracked by the VCS as
part of the history. That's why I prefer approaches of fossil, svn,
monotone, etc. over git. Otherwise, only the commit log may provide
some context information about the circumstances of the change. So, I
like having named branches tracked by the VCS, instead of simply
having a big graph of file changes with commit logs with no additional
information.

And as for live public branches, as Raskin pointed out, the git
(linux) people tend to simply stand a new repository for that specific
purpose somewhere

I'm also quite against of the possibility of rebasing, as it can
easily make invalid assertions people may want to write in their logs,
like I've tested the feature and it works. Then there is the
untracked editing of commits, and all that related to history
rewriting to the taste of the publisher, instead of keeping track of
events in their context along time.
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Peter Simons
Hi Shea,

  The whole notion of having a stdenv-updates branch in the first
  place is obsolete in Git. Instead, we would have many small topic
  branches for specific features.
 
  But stdenv-updates isn't meant as a really big topic branch. It's
  meant as a place for changes that will require rebuilding the system,
  so we can minimize the number of times we require that. How does git
  help with that?

Suppose that I modify GNU Make, for example, then that change ought to
go into stdenv-updates. At the same time, you modify glibc, and that
change goes into stdenv-updates, too. But those two changes are
orthogonal. They don't depend on each other. So why should they be
checked into the same branch? There is no conceptual reason to do that.
Rather, there is a practical reason, namely the fact that creating two
new branches for those two changes -- a.k.a. topic branches -- would be
unfeasible with SVN.

When using Git, that restriction no longer exists. I can create a branch
stdenv/gnu-make, and you can create a branch stdenv/glibc, and Hydra
could build both of them (in fact, Hydra would probably build all
stdenv/* branches). In that scenario, other users are free to merge the
contents of either branch into their personal master; they can choose
whether they want to have the latest gnu make or the latest glibc or
both. When both changes are checked into one monolithic stdenv-updates
branch, however, doing that is not so easy.

Eventually, you decide that the new glibc is stable, and then you run
git merge stdenv-updates on whatever happens to be your equivalent of
the official master branch, and then you push the changeset upstream,
which effectively makes them stable for everyone. The merge commit
would even record the fact that you worked on a topic branch prior to
that, and the history of that branch would become visible in master,
too.

The workflow is not completely different from what we are doing now, but
the granularity is much higher. There isn't just one stdenv-updates
branch. Rather, there are many of them.

Basically, all branches except master are considered unstable, i.e.
work in progress. When they have become stable, though, then they are
pushed into the master branch.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Michael Raskin
1e1d23499a69570914f03bc0a196953a.squir...@webmail.shealevy.com
87ei034yse@write-only.cryp.to
5833f9f3-bf70-4cae-9ad2-489170ad5...@email.android.com)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

  But stdenv-updates isn't meant as a really big topic branch. It's
  meant as a place for changes that will require rebuilding the system,
  so we can minimize the number of times we require that. How does git
  help with that?

Suppose that I modify GNU Make, for example, then that change ought to
go into stdenv-updates. At the same time, you modify glibc, and that
change goes into stdenv-updates, too. But those two changes are
orthogonal. They don't depend on each other. So why should they be
checked into the same branch? There is no conceptual reason to do that.
Rather, there is a practical reason, namely the fact that creating two
new branches for those two changes -- a.k.a. topic branches -- would be
unfeasible with SVN.

If it were, creating stdenv-updates per se would be infeasible.

When using Git, that restriction no longer exists. I can create a branch
stdenv/gnu-make, and you can create a branch stdenv/glibc, and Hydra
could build both of them (in fact, Hydra would probably build all
stdenv/* branches). In that scenario, other users are free to merge the

No. The space required could grow too fast. It was stated many times 
that Hydra jobsets will only be created by people running Hydra.

contents of either branch into their personal master; they can choose
whether they want to have the latest gnu make or the latest glibc or
both. When both changes are checked into one monolithic stdenv-updates
branch, however, doing that is not so easy.

The problem is a packaging problem, not version-management one. If you
update Make, a lot of packages break. If you update glibc, a lot of 
packages break. Some packages break only when you update both at once
(nobody knows how they manage this). 

Also, you want to minimize big rebuilds. 

Note how stdenv-updates really goes: we update _many_ things at once,
and then fix the bugs that show up with all the latest things. If we 
create small topic branches, we have a large risk of spending duplicated
effort fixing many things on many topic branches, then merging some of 
the topic branches together and fixing more things that depend on
combinations of versions, finding out the old fixes make things worse,
and so on. 

Eventually, you decide that the new glibc is stable, and then you run
git merge stdenv-updates on whatever happens to be your equivalent of
the official master branch, and then you push the changeset upstream,
which effectively makes them stable for everyone. The merge commit
would even record the fact that you worked on a topic branch prior to
that, and the history of that branch would become visible in master,
too.

Right, and the make change keeps hanging. So we are worse off than 
now, because we get two stdenv rebuilds.

The workflow is not completely different from what we are doing now, but
the granularity is much higher. There isn't just one stdenv-updates
branch. Rather, there are many of them.

Any update will require lots of fixes. So, it is better to have one
stdenv branch, not ten 50%-broken branches.

And by the way, having all glibc-update branches called the same even
keeps the problem with Git history.

Basically, all branches except master are considered unstable, i.e.
work in progress. When they have become stable, though, then they are
pushed into the master branch.

For packaging, notion of stable cannot be preserved across merges with
any kind of confidence..



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread shea
Hi Peter,

I don't think this accurately reflects the reasons we use stdenv-updates.
We don't put it all in the same branch because more fine-grained branching
is expensive, we put it all in the same branch because we want the
eventual merge of the changes to happen at the same time. We will still
have that requirement for the public nixpkgs repo if we switch to git.

~Shea

 Hi Shea,

   The whole notion of having a stdenv-updates branch in the first
   place is obsolete in Git. Instead, we would have many small topic
   branches for specific features.
  
   But stdenv-updates isn't meant as a really big topic branch. It's
   meant as a place for changes that will require rebuilding the system,
   so we can minimize the number of times we require that. How does git
   help with that?

 Suppose that I modify GNU Make, for example, then that change ought to
 go into stdenv-updates. At the same time, you modify glibc, and that
 change goes into stdenv-updates, too. But those two changes are
 orthogonal. They don't depend on each other. So why should they be
 checked into the same branch? There is no conceptual reason to do that.
 Rather, there is a practical reason, namely the fact that creating two
 new branches for those two changes -- a.k.a. topic branches -- would be
 unfeasible with SVN.

 When using Git, that restriction no longer exists. I can create a branch
 stdenv/gnu-make, and you can create a branch stdenv/glibc, and Hydra
 could build both of them (in fact, Hydra would probably build all
 stdenv/* branches). In that scenario, other users are free to merge the
 contents of either branch into their personal master; they can choose
 whether they want to have the latest gnu make or the latest glibc or
 both. When both changes are checked into one monolithic stdenv-updates
 branch, however, doing that is not so easy.

 Eventually, you decide that the new glibc is stable, and then you run
 git merge stdenv-updates on whatever happens to be your equivalent of
 the official master branch, and then you push the changeset upstream,
 which effectively makes them stable for everyone. The merge commit
 would even record the fact that you worked on a topic branch prior to
 that, and the history of that branch would become visible in master,
 too.

 The workflow is not completely different from what we are doing now, but
 the granularity is much higher. There isn't just one stdenv-updates
 branch. Rather, there are many of them.

 Basically, all branches except master are considered unstable, i.e.
 work in progress. When they have become stable, though, then they are
 pushed into the master branch.

 Take care,
 Peter

 ___
 nix-dev mailing list
 nix-dev@cs.uu.nl
 https://mail.cs.uu.nl/mailman/listinfo/nix-dev



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Peter Simons
Hi Shea,

  I don't think this accurately reflects the reasons we use
  stdenv-updates. We don't put it all in the same branch because more
  fine-grained branching is expensive, we put it all in the same branch
  because we want the eventual merge of the changes to happen at the
  same time.

exactly who is we? Please speak for yourself. I, for one, do not want
unrelated changes to be merged in one commit, because that habit breaks
extremely useful tools such as git bisect.

Besides, having many different stdenv/* topic branches does not imply
that each of them must be merged into master separately. You *can* merge
them all at once, of course, if you want to. It just so happens that I
wouldn't want to do that because the practice violates elementary
principles software engineering.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread shea
 Hi Shea,

   I don't think this accurately reflects the reasons we use
   stdenv-updates. We don't put it all in the same branch because more
   fine-grained branching is expensive, we put it all in the same branch
   because we want the eventual merge of the changes to happen at the
   same time.

 exactly who is we? Please speak for yourself. I, for one, do not want
 unrelated changes to be merged in one commit, because that habit breaks
 extremely useful tools such as git bisect.

 Besides, having many different stdenv/* topic branches does not imply
 that each of them must be merged into master separately. You *can* merge
 them all at once, of course, if you want to. It just so happens that I
 wouldn't want to do that because the practice violates elementary
 principles software engineering.


Do you see why there are benefits, if not from a developer's perspective,
from an end-user perspective and from hydra's perspective to having
changes to stdenv be infrequent and more inclusive than is appropriate for
a generic feature branch?


 Take care,
 Peter

 ___
 nix-dev mailing list
 nix-dev@cs.uu.nl
 https://mail.cs.uu.nl/mailman/listinfo/nix-dev



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Peter Simons
Hi Michael,

  Eventually, you decide that the new glibc is stable, and then you
  run git merge stdenv/glibc on whatever happens to be your
  equivalent of the official master branch, and then you push the
  changeset upstream, which effectively makes them stable for
  everyone.
 
  Right, and the make change keeps hanging. So we are worse off than
  now, because we get two stdenv rebuilds.

actually, it's exactly the opposite. We are better off because we have
significantly reduced the amount of inference between changes to GNU
Make and changes to GNU libc.

When the glibc update has been pushed, those changes become stable or
official or however you want to call it, meaning that those changes
are going to be propagated into all active stdenv/* topic branches,
where the people working on those branches can address problems the
glibc update might cause locally. If all these changes were to occur in
a single branch, then those changes would constantly interfere with each
other, causing lots and lots of unnecessary re-builds and making
everyone's live much harder.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Peter Simons
Hi Shea,

  Do you see why there are benefits [...] to having changes to stdenv
  be infrequent and more inclusive than is appropriate for a generic
  feature branch?

of course, I totally agree with that. Stdenv should be changed only when
there is a good technical reason to do so. For example, it's one thing
to have the latest version of GNU Make available in nixpkgs, but it's
another quite thing to put it into stdenv ... or bootstrap-tools. :-)

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread shea
 Hi Shea,

   Do you see why there are benefits [...] to having changes to stdenv
   be infrequent and more inclusive than is appropriate for a generic
   feature branch?

 of course, I totally agree with that. Stdenv should be changed only when
 there is a good technical reason to do so. For example, it's one thing
 to have the latest version of GNU Make available in nixpkgs, but it's
 another quite thing to put it into stdenv ... or bootstrap-tools. :-)


Ok, so when we have updated Make and gcc and glibc and all of that in
nixpkgs, and we want to test it all together and give hydra something to
build before we actually update stdenv to use the new tools, why not use a
branch specifically made for this purpose?

~Shea


 Take care,
 Peter

 ___
 nix-dev mailing list
 nix-dev@cs.uu.nl
 https://mail.cs.uu.nl/mailman/listinfo/nix-dev



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[***SPAM***] [Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Michael Raskin
1e1d23499a69570914f03bc0a196953a.squir...@webmail.shealevy.com
87ei034yse@write-only.cryp.to
5833f9f3-bf70-4cae-9ad2-489170ad5...@email.android.com
87ei03aw6p@write-only.cryp.to
894aedf1c3c6d28c2272e35ab266d932.squir...@webmail.shealevy.com)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

  I don't think this accurately reflects the reasons we use
  stdenv-updates. We don't put it all in the same branch because more
  fine-grained branching is expensive, we put it all in the same branch
  because we want the eventual merge of the changes to happen at the
  same time.

exactly who is we? Please speak for yourself. I, for one, do not want
unrelated changes to be merged in one commit, because that habit breaks
extremely useful tools such as git bisect.

One commit and one branch are different things. 

Besides, having many different stdenv/* topic branches does not imply
that each of them must be merged into master separately. You *can* merge
them all at once, of course, if you want to. It just so happens that I
wouldn't want to do that because the practice violates elementary
principles software engineering.

The problem is that actually merging them one-by-one is costly. Trunk
should receive one rebuild. And it is established practice to reduce
the count of stdenv rebuilds.

Also, there is little happening in NixPkgs that should be classified as
software engineering. Everything non-trivial in packaging is about 
finding out upstream quirks. 

To run NixOS, I need maximum amount of packages in stdenv-updates to be
non-broken. Tracking what is broken where across five topic branches is
insanity even without second-guessing what will start working on merge.



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Michael Raskin
e1qy7ah-0002y4-00.7c6f434c-mail...@smtp6.mail.ru
e1qyojz-0005ym-00.7c6f434c-mail...@smtp1.mail.ru)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

  Eventually, you decide that the new glibc is stable, and then you
  run git merge stdenv/glibc on whatever happens to be your
  equivalent of the official master branch, and then you push the
  changeset upstream, which effectively makes them stable for
  everyone.
 
  Right, and the make change keeps hanging. So we are worse off than
  now, because we get two stdenv rebuilds.

actually, it's exactly the opposite. We are better off because we have
significantly reduced the amount of inference between changes to GNU
Make and changes to GNU libc.

When the glibc update has been pushed, those changes become stable or
official or however you want to call it, meaning that those changes
are going to be propagated into all active stdenv/* topic branches,
where the people working on those branches can address problems the
glibc update might cause locally. If all these changes were to occur in
a single branch, then those changes would constantly interfere with each
other, causing lots and lots of unnecessary re-builds and making
everyone's live much harder.

Everyone is using trunk on the computers which they expect to work.

So two stdenv rebuilds where one would work is an annoyance.

The changes from glibc and from make would interfere once. We would 
rebuild make, then learn to build glibc with new make (we have to do
this anyway), then make and glibc are quite likely not to change. 

Solutions to many problems with updates often include updating the 
offending packages to get upstream fixes. Your way supposes trying to 
build them with just new glibc, and then trying to build them with new
glibc and make. It doesn't look like this approach would reduce 
rebuilds.

And, by the way, if updating a package to a new-and-shiny version which
boasts fixed problems with fresh glibc also requires fresh gcc, won't
it lead either to consiously breaking trunk or to making glibc-updates 
branch closer to stdenv-updates anyway? Updating GNU TLS to 3.0 seems to
make need GTK+-3.0 packages for glib-networking to work. It is just a
fresh example...



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Peter Simons
Hi Shea,

  [We] have updated Make and gcc and glibc and all of that in nixpkgs,
  and we want to test it all together and give hydra something to build
  before we actually update stdenv to use the new tools, why not use a
  branch specifically made for this purpose?

sure, I guess that's exactly what we are going to do.

Now, suppose we have updates of make, glibc, and gcc. The updates to
glibc and gcc work just fine, but the update to make breaks half of all
our builds. Do you think we should defer the updates to glibc and gcc
until all failures caused by the new make have been fixed? Or do you
think we might want to update glibc and gcc in 'master', and continue to
work on the make issue independently?

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Ludovic Courtès
Hi!

Eelco Dolstra e.dols...@tudelft.nl skribis:

 So it would be nice if we had a more stable tree that users can update
 from safely.  For example, we could have these Nixpkgs/NixOS
 trees/branches:

 - An unstable tree which receives developer commits.  It might be in
 a broken state, so end users shouldn't use it.  Hydra continuously
 builds it.  Of course, complicated changes should be done in a feature
 tree/branch and pulled in when they're done.

 - A tested tree that automatically gets updated from the unstable
 tree when some set of Nixpkgs and NixOS tests succeed *and* the
 Nixpkgs channel is up to date.  This tree should be fairly safe to
 use.

 - A stable tree that gets updated manually and conservatively (e.g.,
 only security or stability updates).

 Does this sound reasonable?

Sounds like a great idea.

Automatic migration from ‘unstable’ to ‘tested’ may be tricky to
implement, but it would be really nice (this reminds me of ‘tla-pqm’, an
automatic patch queue manager [0].)

[...]

 Random point: should the NixOS and Nixpkgs trees be in the same
 repository?  I think so, since it allows them to be updated
 atomically, which is important given that Nixpkgs and NixOS changes
 are often related.

Agreed.

Thanks,
Ludo’.

[0] http://wiki.bazaar.canonical.com/PatchQueueManager

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Peter Simons
Hi Michael,

  Two stdenv rebuilds where one would work is an annoyance.
 
  [...]
 
  Your way supposes trying to build them with just new glibc, and then
  trying to build them with new glibc and make. It doesn't look like
  this approach would reduce rebuilds.
 
  [...]

my impression is that we approach the question at hand using different
priorities. You seem to be concerned mostly with Hydra, i.e. you argue
that policies should be designed so that Hydra is happy, whereas I am
concerned with people, i.e. I argue for policies that simplify
development -- even if this means that Hydra has to perform builds that
could theoretically have been avoided.

Under those circumstances, I don't see how we could agree, so I suggest
we agree to disagree.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Michael Raskin
87ei03aw6p@write-only.cryp.to
e1qyq0p-0003fq-00.7c6f434c-mail...@smtp15.mail.ru)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

  Two stdenv rebuilds where one would work is an annoyance.

  Your way supposes trying to build them with just new glibc, and then
  trying to build them with new glibc and make. It doesn't look like
  this approach would reduce rebuilds.

my impression is that we approach the question at hand using different
priorities. You seem to be concerned mostly with Hydra, i.e. you argue
that policies should be designed so that Hydra is happy, whereas I am
concerned with people, i.e. I argue for policies that simplify
development -- even if this means that Hydra has to perform builds that
could theoretically have been avoided.

Well, I'd say that I care more about people using Nix, because usually
I use way more packages than dependencies of any given package (which 
I would rebuild while developing a package). Also, not everything I use
is built by Hydra...

Also, looks like state of the affairs in the parts of Nixpkgs we work on
is too different.

I could look for some examples where updating sanely meant simply 
updating everything first and sorting things out later; there obviously
are some updates where knowing whether new glibc or new gcc breaks the
build helps. I guess getting any numbers would be hard.

Under those circumstances, I don't see how we could agree, so I suggest
we agree to disagree.

Well, I am even more unconvinced - based on my experience with updates,
I would prefer stdenv-updates to be unified branch even for the process
of fixing the packages. Because easy things are just done and hard 
things are - in my experience with packaging - usually easy to trace 
back to single dependency and hard to fix anyway.

But you are right, it's not likely that we could find any new arguments.



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Lluís Batlle i Rossell
On Tue, Aug 30, 2011 at 08:12:33PM +0400, Michael Raskin wrote:
 Under those circumstances, I don't see how we could agree, so I suggest
 we agree to disagree.
 
 Well, I am even more unconvinced - based on my experience with updates,
 I would prefer stdenv-updates to be unified branch even for the process
 of fixing the packages. Because easy things are just done and hard 
 things are - in my experience with packaging - usually easy to trace 
 back to single dependency and hard to fix anyway.

I think I'm with Michael about having stdenv-updates. I like the current process
of updating stdenv pieces, and at some point, decide on stabilisation, freeze
updates, and fix any problems there may be. Before stabilisation, we may have
some packages (or even platforms) not working, but still a big part working for
others to play with stdenv.

This does not mean that people may want to branch from stdenv-updates to fix or
update some pieces, but I'd have hydra busy building only stdenv-updates, for
example. Just to have a single point where people caring about stdenv can take a
look and see the status, and what can be done.
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Peter Simons
Hi Lluís,

  I would have Hydra build only stdenv-updates.

in that case, I am glad that this decision is not up to you. Based
on http://hydra.nixos.org/project/nixpkgs, I have faith that the
people who do make those kind of decisions don't agree with your
point of view.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-30 Thread Lluís Batlle i Rossell
On Tue, Aug 30, 2011 at 07:34:36PM +0200, Peter Simons wrote:
 Hi Lluís,
 
   I would have Hydra build only stdenv-updates.
 
 in that case, I am glad that this decision is not up to you. Based
 on http://hydra.nixos.org/project/nixpkgs, I have faith that the
 people who do make those kind of decisions don't agree with your
 point of view.

Ah, well, I wrote too short what I meant.

I mean that I think hydra would be most useful to us if it does not bother
building constantly short-lived branches.
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-29 Thread Peter Simons
Hi,

  Given that branches are mere pointers, I don't see how to find out
  what was stdenv-updates before after it has been merged into trunk
  and re-created
 
  Yeah, it would be nice if git had information in commits about which
  branch the commit was initially performed on. This seems like a
  really simple feature, not sure why it doesn't exist.

personally, I don't see why that information is relevant. Branch names
are a local affair in Git. It's quite possible for two repositories to
track the same content using completely different branch names. So why
bother recording the name if it doesn't have any significance outside of
the repository? Other DVCS make a lot of fuss about branch names, like
monotone, but I don't see any gain in a distributed project. 

The whole notion of having a stdenv-updates branch in the first place
is obsolete in Git. Instead, we would have many small topic branches for
specific features.

Also, I'm not quite sure why there should be an extra stable branch.
As far as I am concerned, master ought to be stable.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-29 Thread Rok Garbas
On 30/08/11 00:51, Peter Simons wrote:
 Hi,
 
   Given that branches are mere pointers, I don't see how to find out
   what was stdenv-updates before after it has been merged into trunk
   and re-created
  
   Yeah, it would be nice if git had information in commits about which
   branch the commit was initially performed on. This seems like a
   really simple feature, not sure why it doesn't exist.
 
 personally, I don't see why that information is relevant. Branch names
 are a local affair in Git. It's quite possible for two repositories to
 track the same content using completely different branch names. So why
 bother recording the name if it doesn't have any significance outside of
 the repository? Other DVCS make a lot of fuss about branch names, like
 monotone, but I don't see any gain in a distributed project. 
 
 The whole notion of having a stdenv-updates branch in the first place
 is obsolete in Git. Instead, we would have many small topic branches for
 specific features.
 

if you want branch to show in history you would have to push that branch
ti remote repo as well (using --no-ff option).

but as Peter pointed, branches in git are matter of local higene. You
name it however you want and make sure you merge them to remote branch.
Git doesn't force to you specific branching policy localy while still
playing nice with policy used on remote branch.


 Also, I'm not quite sure why there should be an extra stable branch.
 As far as I am concerned, master ought to be stable.

Or master is unstable and there is stable branch. As long as its
documented what is where it doesn't really matter. Maybe master being
stable makes more sense since usually newcomers always look there and
considered its stable they will have better first time experience (or
maybe this is not wanted :P).


___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-29 Thread Shea Levy


Peter Simons sim...@cryp.to wrote:

Hi,

  Given that branches are mere pointers, I don't see how to find out
  what was stdenv-updates before after it has been merged into trunk
  and re-created
 
  Yeah, it would be nice if git had information in commits about which
  branch the commit was initially performed on. This seems like a
  really simple feature, not sure why it doesn't exist.

personally, I don't see why that information is relevant. Branch names
are a local affair in Git. It's quite possible for two repositories to
track the same content using completely different branch names. So why
bother recording the name if it doesn't have any significance outside
of
the repository? Other DVCS make a lot of fuss about branch names, like
monotone, but I don't see any gain in a distributed project. 

The whole notion of having a stdenv-updates branch in the first place
is obsolete in Git. Instead, we would have many small topic branches
for
specific features.


But stdenv-updates isn't meant as a really big topic branch. It's meant as a 
place for changes that will require rebuilding the system, so we can minimize 
the number of times we require that. How does git help with that? 


Also, I'm not quite sure why there should be an extra stable branch.
As far as I am concerned, master ought to be stable.


Some people desire the ability to expect most packages to build, some to use 
the latest packages. These desires are often in tension. 

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-29 Thread Michael Raskin
1e1d23499a69570914f03bc0a196953a.squir...@webmail.shealevy.com)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

Hi,

  Given that branches are mere pointers, I don't see how to find out
  what was stdenv-updates before after it has been merged into trunk
  and re-created
 
  Yeah, it would be nice if git had information in commits about which
  branch the commit was initially performed on. This seems like a
  really simple feature, not sure why it doesn't exist.

personally, I don't see why that information is relevant. Branch names
are a local affair in Git. It's quite possible for two repositories to

So large projects model persistent branches with separate repositories,
and still cannot keep track of what went where in the first place.

track the same content using completely different branch names. So why
bother recording the name if it doesn't have any significance outside of

This is sometimes reverse thinking. What you say is Git doesn't provide
nice tools to work with global branches, so they are useless. 

In Linux, separate feature branches are global and persistent. They 
use separate repositories to distribute load and because Git doesn't 
give them anything else. In Mozilla separate branches follow a naming
system and live inside one repository. We do want long-lived global
feature branches - if not, why not simply have SVN as the main repo
and use whatever system you prefer for tracking local changes? Because
SVN does allow global bracnhes?

Mercurial used to have way of dealing with branches similar to what you
described; they allowed keeping more data about intentions to fix the
interface. Git makes complete format stability one of its ways to ensure
overall reliability of the system, so it is unlikely Git will allow to
store any new kinds of information about commits in-repo.

the repository? Other DVCS make a lot of fuss about branch names, like
monotone, but I don't see any gain in a distributed project. 

Monotone promotes a consistent culture of naming branches. The basic
things that come from that is that I can sensibly manage one Monotone
database and make checkouts of whatever project I need when I need them.

The whole notion of having a stdenv-updates branch in the first place
is obsolete in Git. Instead, we would have many small topic branches for
specific features.

Well, we could call our stdenv-updates branches add-glibc-2.7 etc.
We didn't do it as a matter of development organization, not because of
some VCS matter. 

It is impossible to make stdenv-updates branch small if you want 
anything to work after the merge - even GNU TLS updates often break some
networking applications; gcc updates require rechecking most other 
packages. Sometimes it is prefereable to update many packages and then
wait for upstream fixes in some more. So this branch will not be 
short-lived - most probably, neither in days nor in commits.

Stdenv-updates has a few meanings conveying developer intent: first, it
is a branch where full-rebuild updates go; second, Hydra has a task to
build stdenv-updates branch; its static name means that the task is 
simply switched on and off, not changed every time. That way there is 
less place for mistakes - and so less burden for Hydra maintenance. 

Also, I'm not quite sure why there should be an extra stable branch.
As far as I am concerned, master ought to be stable.

You either shift the problem or understand it not in a way others do.

There is some code line that is build by Hydra and that is hoped to be
somewhat stable. Currently it is trunk. So people simply translate it
as master. It is unlikely that every revision of it allows to build
every package in some checklist including Firefox and OpenOffice. Simply
because mistakes do happen and there is no way to ensure that a 
well-tested update of some package doesn't cause some part of dependent
packages to fail. 

Next, there is a stream of commits which were actually built by Hydra. 
Git doesn't allow tracking it all inside VCS, but the latest can be the
head of some auto-shifted branch or bear some tag.

Next, there could be some way to get the latest commits that, say, make
a few NixOS feature-tests pass.

The stable branch discussed in this thread consists of hand-picked 
commits that pass all formal tests and do not cause noticeable problems
in actual use. 

Once can want master to be that stable branch or one may want to 
have a separate stable branch - but the question of hand-picking 
stays. There is also a question of what formal criteria to set if we
want Hydra-related branches, too.



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[***SPAM***] [Nix-dev] Re: new possible movement to git (?)

2011-08-29 Thread Michael Raskin
1e1d23499a69570914f03bc0a196953a.squir...@webmail.shealevy.com
87ei034yse@write-only.cryp.to)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

 The whole notion of having a stdenv-updates branch in the first place
 is obsolete in Git. Instead, we would have many small topic branches for
 specific features.
if you want branch to show in history you would have to push that branch
ti remote repo as well (using --no-ff option).

but as Peter pointed, branches in git are matter of local higene. You
name it however you want and make sure you merge them to remote branch.
Git doesn't force to you specific branching policy localy while still
playing nice with policy used on remote branch.

Well, remote branches are just local branches for the remote repository.

So the naming questions apply to them. 




___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Shea Levy

On 08/26/2011 12:28 AM, Rok Garbas wrote:

On 24/08/11 23:02, Shea Levy wrote:

It has been over a year since this discussion and I have not seen any
move toward implementing the suggestions in the thread. If this is
simply due to inertia, I would like to offer up help similar to what
Marc Weber offers in his initial email (migrating scripts, providing
advice to users, etc.). If it is because the NixOS community is
undecided as to which vcs to switch to, perhaps we should have a
discussion about how to fairly discuss and decide such things?

i think its one of those things nobody wants take over them since - as
usually is - migration svn-to-git is usually pain or at least time
consuming.

i'm just finishing fairly large migration (3 separate svn-repos, ~300k
commits, first commit dates to 2004, not to mention all svn cp that
happened over time, kde's svn2git is used) and i could use this
experience (writing complex svn2git rules) and migrate nixos svn
repository to more github repos (i assume you want to split some things out)

i would suggest that if there is interest that we just do migration -
it might not even be that painful - then it would be easier to make
decision since keeping this up-to-date is a matter of few extra cpu
cycles per hour.

garbas on freenode, in case you would be interested in my help. what i
would need to get started is **idea what should go where** and somebody
giving me instructions.

see you on irc...


lp rok









___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev
From my thinking, the process would be cleanest if it took the 
following steps:


1. All the projects which contain references to the svn repos get 
updated to point to where the new git repos will be
2. The svn repo is rendered read-only or all committers have their write 
access revoked
3. Git repos are generated from the svn repos (each of the 
https://svn.nixos.org/repos/nix/*) using one of the many available tools 
for the purpose
4. The newly-generated git repos are put in the locations specified in 
step 1.


Anyone can perform steps 1 and 3, while steps 2 and 4 require some sort 
of administrative access to complete, but are fairly straightforward in 
and of themselves. If we can get agreement about where the git repos 
should go, I'll be happy to perform steps 1 and 3 (and 4, if we decide 
to host the git repos somewhere public or on my servers for some reason) 
myself, but without agreement on step 1 any effort on this will just be 
wasted since everything will still default to the svn.nixos.org repos.


I'm a bit tempted to just say If I get no objections by two weeks from 
now, I'll update the svn to point to a github repo until someone can set 
the repos up on the nixos servers, but I don't know whether the policy 
for a change this big is if nothing is said, do it or if nothing is 
said, don't do it.


~Shea
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Peter Simons
Hi guys,

personally, I would like to see a move to Git happen just as much as you
do, mostly because daily operations with Git are much faster than they
are with SVN (at least for me, that is). However, there isn't much of a
point getting ahead of ourselves, planning the details of the move until
Eelco has said that he actually wants that. Until now, he hasn't.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Michael Raskin
j377eb$m52$1...@dough.gmane.org)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

 From my thinking, the process would be cleanest if it took the 
following steps:

1. All the projects which contain references to the svn repos get 
updated to point to where the new git repos will be
2. The svn repo is rendered read-only or all committers have their write 
access revoked
3. Git repos are generated from the svn repos (each of the 
https://svn.nixos.org/repos/nix/*) using one of the many available tools 
for the purpose
4. The newly-generated git repos are put in the locations specified in 
step 1.

Anyone can perform steps 1 and 3, while steps 2 and 4 require some sort 
of administrative access to complete, but are fairly straightforward in 
and of themselves. If we can get agreement about where the git repos 
should go, I'll be happy to perform steps 1 and 3 (and 4, if we decide 
to host the git repos somewhere public or on my servers for some reason) 
myself, but without agreement on step 1 any effort on this will just be 
wasted since everything will still default to the svn.nixos.org repos.

I'm a bit tempted to just say If I get no objections by two weeks from 
now, I'll update the svn to point to a github repo until someone can set 
the repos up on the nixos servers, but I don't know whether the policy 
for a change this big is if nothing is said, do it or if nothing is 
said, don't do it.

~Shea

We have if nothing is said, don't do it for far less intrusive changes
than changes that include loss of access to some parts of data. 

With SVN I can easily look up which commits were initially done in 
stdenv branch and which were done in trunk. Ditto with Mercurial. But 
with git you seem to need some extra knowledge to do that after the 
proposed move.

There are many arguments for hg/fossil/git, so just moving to git is 
not obviously the best solution. There are things that are better in 
SVN than in git, and we are not a kernel-sized project where we would
be in the situation git is tuned for. So it is not a good idea to do any
radical step without explicit support from TU Delft people.



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Shea Levy

On 08/26/2011 07:36 AM, Michael Raskin wrote:

j377eb$m52$1...@dough.gmane.org)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8


 From my thinking, the process would be cleanest if it took the
following steps:

1. All the projects which contain references to the svn repos get
updated to point to where the new git repos will be
2. The svn repo is rendered read-only or all committers have their write
access revoked
3. Git repos are generated from the svn repos (each of the
https://svn.nixos.org/repos/nix/*) using one of the many available tools
for the purpose
4. The newly-generated git repos are put in the locations specified in
step 1.

Anyone can perform steps 1 and 3, while steps 2 and 4 require some sort
of administrative access to complete, but are fairly straightforward in
and of themselves. If we can get agreement about where the git repos
should go, I'll be happy to perform steps 1 and 3 (and 4, if we decide
to host the git repos somewhere public or on my servers for some reason)
myself, but without agreement on step 1 any effort on this will just be
wasted since everything will still default to the svn.nixos.org repos.

I'm a bit tempted to just say If I get no objections by two weeks from
now, I'll update the svn to point to a github repo until someone can set
the repos up on the nixos servers, but I don't know whether the policy
for a change this big is if nothing is said, do it or if nothing is
said, don't do it.

~Shea

We have if nothing is said, don't do it for far less intrusive changes
than changes that include loss of access to some parts of data.

With SVN I can easily look up which commits were initially done in
stdenv branch and which were done in trunk. Ditto with Mercurial. But
with git you seem to need some extra knowledge to do that after the
proposed move.

There are many arguments for hg/fossil/git, so just moving to git is
not obviously the best solution. There are things that are better in
SVN than in git, and we are not a kernel-sized project where we would
be in the situation git is tuned for. So it is not a good idea to do any
radical step without explicit support from TU Delft people.



Yeah, I won't actually do anything without an explicit go-ahead, though 
I'll really want to if this discussion just dies out without any 
resolution like the last time this came up.


As to the git is not obviously the best solution: this is why I wanted 
to revive this discussion. Please, let's discuss the relative merits of 
different SCM options. Obviously ultimately the TU Delft people are 
ultimately in control of this project, but to the extent that we want 
decisions like these to be handled by the community: If the answer to 
why haven't we switched away from svn is simply inertia, then we 
should discuss how to overcome that inertia. If the answer is that we 
might want to stick with svn, or that we might want to switch to 
something besides git, then we should discuss the reasons for and 
against, and if we can't come to an obvious solution than maybe we 
should take a step back and discuss how decisions like this should be 
made. I'm not saying nixos needs formal processes or anything, but this 
was discussed last year and seems to have a fair amount of support but 
has never been resolved. I am pushing for git because it is from my 
(admittedly limited) knowledge the best solution, but what I care about 
more than that is making some move on this issue. That could mean Eelco 
saying that he's going to stick with subversion and that's that, it 
could mean a consensus that it is too difficult to choose which system 
to switch to so subversion wins by default, it could mean a consensus 
that we should table this discussion for a fixed period of time, etc. 
The current situation is a bit frustrating, though, since we have people 
willing to do the work involved but no definitive answer either way, 
even though those who have the authority to give a definitive answer 
have commented on the matter.

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Shea Levy

On 08/26/2011 06:34 AM, Peter Simons wrote:

Hi guys,

personally, I would like to see a move to Git happen just as much as you
do, mostly because daily operations with Git are much faster than they
are with SVN (at least for me, that is). However, there isn't much of a
point getting ahead of ourselves, planning the details of the move until
Eelco has said that he actually wants that. Until now, he hasn't.

Take care,
Peter

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev
My hope in giving the possible details is to make the prospective move 
seem as work-free for most people as possible to overcome any inertia 
that remains. Of course, if there is more than simple inertia stopping 
the move, then having a planned process won't help.


~Shea
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Nicolas Pierron
Hi Michael,

On Fri, Aug 26, 2011 at 13:36, Michael Raskin 7c6f4...@mail.ru wrote:
 With SVN I can easily look up which commits were initially done in
 stdenv branch and which were done in trunk. Ditto with Mercurial. But
 with git you seem to need some extra knowledge to do that after the
 proposed move.

I agree, but only If you use rebase.  git rebase is nice for local
branches, but is a nightmare when you are working a large number of
persons.

In git cherry-picks are not tracking the patch history.  Thus you
cannot rely on cherry-pick with git as you do with subversion.

The other mean is to use merges, which keep the history as it is.
Thus you can see that this was a previous branch which has been merged
into the master (trunk)

Changing VCS also implies to change the workflow which is based on it.
 Having used git / hg / svn, I really love to be able to seek the
history very fast, which is really slow in hg and svn.

-- 
Nicolas Pierron
http://www.linkedin.com/in/nicolasbpierron - http://nbp.name/
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Ludovic Courtès
Hello,

Shea Levy s...@shealevy.com skribis:

 If it is because the NixOS community is
 undecided as to which vcs to switch to, perhaps we should have a
 discussion about how to fairly discuss and decide such things?

I think it’s mostly because the maintainer is undecided.  :-)

Ludo’.

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Shea Levy


l...@gnu.org wrote:

Hello,

Shea Levy s...@shealevy.com skribis:

 If it is because the NixOS community is
 undecided as to which vcs to switch to, perhaps we should have a
 discussion about how to fairly discuss and decide such things?

I think it’s mostly because the maintainer is undecided.  :-)


Fair enough, as I said those if-then scenarios only apply to the extent that 
Eelco wants this kind of decision to be managed by the community. If he is 
undecided though, I'd be interested in discussing why, or, if he isn't 
interested in having the discussion, I'd appreciate knowing that so we have 
some sort of answer. 

Ludo’.

___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev

-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2011-08-26 Thread Michael Raskin
4e5566e6.9050...@shealevy.com 4e576c9c.4010...@shealevy.com
e1qwubl-0003wo-00.7c6f434c-mail...@smtp15.mail.ru)
Mime-Version: 1.0
Content-type: text/plain; charset=UTF-8

On Fri, Aug 26, 2011 at 13:36, Michael Raskin 7c6f4...@mail.ru wrote:
 With SVN I can easily look up which commits were initially done in
 stdenv branch and which were done in trunk. Ditto with Mercurial. But
 with git you seem to need some extra knowledge to do that after the
 proposed move.
I agree, but only If you use rebase.  git rebase is nice for local
branches, but is a nightmare when you are working a large number of
persons.

Any change in the history is a nightmare when you have more than 
one repository that had the original history. That's fine

In git cherry-picks are not tracking the patch history.  Thus you
cannot rely on cherry-pick with git as you do with subversion.

The other mean is to use merges, which keep the history as it is.
Thus you can see that this was a previous branch which has been merged
into the master (trunk)

As far as I remember, you need to keep old branch head at the position
where it was merged for this to work. Unlike hg and monotone, commit
doesn't remember its branch per se and you cannot store the branch where
commit belongs automatically. This means that after conversion
we will lose data, because we have multiple merges of branch stdenv to
trunk. Also, if you have branches that later split in branches and are 
merged directly into master, you cannot automatically find out which
of the branches was created only during split. 

Changing VCS also implies to change the workflow which is based on it.
 Having used git / hg / svn, I really love to be able to seek the
history very fast, which is really slow in hg and svn.

Frankly, I tried multiple DVCSes (I used hg, bzr and mtn for a lot of time
and sent some patches to git-managed projects) and git makes most stress
on managing huge projects and least stress on having a nice straightforward
conceptual system that covers all operations (or on keeping all data it has
now in future).



___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-25 Thread Rok Garbas
On 24/08/11 23:02, Shea Levy wrote:
 It has been over a year since this discussion and I have not seen any
 move toward implementing the suggestions in the thread. If this is
 simply due to inertia, I would like to offer up help similar to what
 Marc Weber offers in his initial email (migrating scripts, providing
 advice to users, etc.). If it is because the NixOS community is
 undecided as to which vcs to switch to, perhaps we should have a
 discussion about how to fairly discuss and decide such things?

i think its one of those things nobody wants take over them since - as
usually is - migration svn-to-git is usually pain or at least time
consuming.

i'm just finishing fairly large migration (3 separate svn-repos, ~300k
commits, first commit dates to 2004, not to mention all svn cp that
happened over time, kde's svn2git is used) and i could use this
experience (writing complex svn2git rules) and migrate nixos svn
repository to more github repos (i assume you want to split some things out)

i would suggest that if there is interest that we just do migration -
it might not even be that painful - then it would be easier to make
decision since keeping this up-to-date is a matter of few extra cpu
cycles per hour.

garbas on freenode, in case you would be interested in my help. what i
would need to get started is **idea what should go where** and somebody
giving me instructions.

see you on irc...


lp rok









signature.asc
Description: OpenPGP digital signature
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2011-08-25 Thread Rok Garbas
On 26/08/11 06:28, Rok Garbas wrote:
 repository to more github repos (i assume you want to split some things out)
 that should be git



signature.asc
Description: OpenPGP digital signature
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


[Nix-dev] Re: new possible movement to git (?)

2010-08-04 Thread Yury G. Kudryashov
Marc Weber wrote:

 I still see the value of SVN checkouts - less size on disk - so maybe
% cd /etc/nixos/nixpkgs # git checkout, both trunk and stdenv branch
% git gc; du -sh
66M
% du -sh .git
41M
# Hence, the tree is 66-41=25M
% du -sh /etc/nixos/nixpkgs-svn
130M

Are you still sure that svn checkout use less disk space?

But I think that we should discuss the choice of dvcs (or setup some 
autosynced dvcs mirrors). I know that Michael Raskin is against git.

Eelco, could you please provide svn dump? I'd like to test svn2git script 
used by KDE.

 maintaining a svn mirror (for stable branch only?) is a good choice?
 
 At this point I want to remind that github has a SVN interface for git
 repositories! Thus you can use git - but SVN users can still use SVN if
 they prefer. I haven't tested it yet - though.
I'm against using external closed source code hosting.
 
 Eelco Dolstra: Thanks for taking the time to reply. Let me know if I can
 support you in any way, please.
 
 Marc Weber


___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2010-08-04 Thread Marc Weber
Excerpts from Yury G. Kudryashov's message of Wed Aug 04 13:23:10 +0200 2010:
 But I think that we should discuss the choice of dvcs (or setup some 
 autosynced dvcs mirrors). I know that Michael Raskin is against git.
We can. But I think the result will be git.

Michael Raskin: If you'd prefer a different one say so - and say why,
please. In a previous post I concluded that he would accept using git
as alternative to SVN. See here:
http://thread.gmane.org/gmane.linux.distributions.nixos/4425/focus=4440

 I'm against using external closed source code hosting.
It could be used as additional git mirror for that reason if there is
need to. This could provide some additional transition time for some
users. Is someone interested in it at all?

  I still see the value of SVN checkouts - less size on disk - so maybe
 % cd /etc/nixos/nixpkgs # git checkout, both trunk and stdenv branch
 % git gc; du -sh
 66M
 % du -sh .git
 41M
 # Hence, the tree is 66-41=25M
 % du -sh /etc/nixos/nixpkgs-svn
 130M

 Are you still sure that svn checkout use less disk space?
Is your comparison fair? Did you include the checked out files in the
git calculation?
Because SVN stores all files twice let's add 1/rd of the space of SVN.
Then you have 40M + (130/4M) approx 80MB. Still less than 130MB.
But I expect nixpkgs to grow. So in 10 years svn will be smaller because
it doesn't store history.

Marc Weber
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2010-08-04 Thread Evgeny Egorochkin
On Wednesday 04 August 2010 15:59:17 Marc Weber wrote:
 Excerpts from Yury G. Kudryashov's message of Wed Aug 04 13:23:10 +0200 
2010:
  But I think that we should discuss the choice of dvcs (or setup some
  autosynced dvcs mirrors). I know that Michael Raskin is against git.
 
 We can. But I think the result will be git.
 
 Michael Raskin: If you'd prefer a different one say so - and say why,
 please. In a previous post I concluded that he would accept using git
 as alternative to SVN. See here:
 http://thread.gmane.org/gmane.linux.distributions.nixos/4425/focus=4440
 
  I'm against using external closed source code hosting.
 
 It could be used as additional git mirror for that reason if there is
 need to. This could provide some additional transition time for some
 users. Is someone interested in it at all?
 
   I still see the value of SVN checkouts - less size on disk - so maybe
  
  % cd /etc/nixos/nixpkgs # git checkout, both trunk and stdenv branch
  % git gc; du -sh
  66M
  % du -sh .git
  41M
  # Hence, the tree is 66-41=25M
  % du -sh /etc/nixos/nixpkgs-svn
  130M
  
  Are you still sure that svn checkout use less disk space?
 
 Is your comparison fair? Did you include the checked out files in the
 git calculation?
 Because SVN stores all files twice let's add 1/rd of the space of SVN.
 Then you have 40M + (130/4M) approx 80MB. Still less than 130MB.
 But I expect nixpkgs to grow. So in 10 years svn will be smaller because
 it doesn't store history.

This isn't entirely correct because svn checkout will grow too unless you 
expect to only do version bumps.

And 10 years??? svn won't last this long I'm afraid :) 

One of the reasons why SVN checkout of nixpkgs is so large is because of the 
code tree organization: most of dirs have just one 1kb file which means huge 
overhead for svn. Just look into .svn dirs.

Just to make sure:
%du nixpkgs/.git nixpkgs -s
42804   nixpkgs/.git
68912   nixpkgs

and this is svn:
% du nixpkgs2 -s
131964  nixpkgs2

-- 
Evgeny
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2010-08-04 Thread Michael Raskin
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 08/04/2010 04:59 PM, Marc Weber wrote:
 Excerpts from Yury G. Kudryashov's message of Wed Aug 04 13:23:10 +0200 2010:
 But I think that we should discuss the choice of dvcs (or setup some 
 autosynced dvcs mirrors). I know that Michael Raskin is against git.
 We can. But I think the result will be git.

 Michael Raskin: If you'd prefer a different one say so - and say why,
 please. In a previous post I concluded that he would accept using git
 as alternative to SVN. See here:
 http://thread.gmane.org/gmane.linux.distributions.nixos/4425/focus=4440

I said about having a Git mirror being a good start in multi-VCS system.
Storing repository in Git has some drawbacks, as it stores too little
history. As far as I know with our branch/merge cycle for
stdenv-updates, it would be impossible to find out which path was
stdenv-updates and which was trunk except by counting distinct stdenvs
on each path.

 I'm against using external closed source code hosting.
 It could be used as additional git mirror for that reason if there is
 need to. This could provide some additional transition time for some
 users. Is someone interested in it at all?

Is there anyone using Tailor for Git-SVN? It may turn out to be easier...
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.15 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJMWaGzAAoJEE6tnN0aWvw3daQH/3pZj7II5K+uzSxWqVeYoWFs
K2sZ/FTv9AA/VSzW2ZXfIzkmtg3HYgnUf0taGadVg/PgSOcM2AMojCKkpt8DRXq1
H9suuY7z9LRhfNSJZNf/ADcNNsltX0VxfxhWXk9DMCKHM+XWn6cjVOf1c8M6gwiZ
kG+T38xXiuo2mMiP8akQOyZaBxHOWhIkY04MIamZgQ6YZ21RZXBtaMq4ulD/9nOX
QVVuuFH8odOypO2MjCRKw+4R+PraP1QgHZFzBLht/by6M3jgcUn6AE3FgGenJxOB
geS2vxFUsXKqGJt7pJPau0TN+A5iUOrY2Zx3f408twNRADh2c3jWKoQ7YpawGSA=
=rSql
-END PGP SIGNATURE-
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev


Re: [Nix-dev] Re: new possible movement to git (?)

2010-08-04 Thread Michael Raskin
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 08/04/2010 09:35 PM, Marc Weber wrote:
 Are you talking about merging?
 
 a - x -y - MERGE - ...
  `- B -C ` 
 
 So that its hard to find out whether x - y or B - C was stdenv-updates?
 We could add a BRANCH-INFO file then and put the info in there.

Well, if we want to do that, maybe we have to agree on the set of
necessary kludges beforehand.

 Git *is* stupid by design. You could mark it by tagging as well
 tag-stdenv-updates-before-merge.

Design? Git has no design, just speed optimizations. Look at Darcs for
what a VCS design is.

If we wish to use history as something more than unlabeled graph, we
need to decide now - SVN to Git move can be a lossy operation.

 However git is different anyway. Probably we're not going to have
 stdenv-anymore. We'll have branches such as gtk-updates  xorg-updates,
 ... and maybe a branch called next which is a merge of those topics.

You understand that you are just strengthening my point? I understand
that _any_ DVCS (probably even SVK) simplifies having lighter branches.
But Git considers OK to GC branch data. And no, it is not ignoring
historical branch data - as you claimed it does for simplicity - it
stores reflog and can be made to clean it. I am not even sure how much
of history rewriting is actually a good idea (as opposed to
cherry-picking from a local branch/a local-only second head of the branch).

Personally, I am promoting Monotone, as it has deliberately hard-to-lose
history, commit property authentication (i.e. you know who set what
tag), and also will allow us to have things like a branch (maybe
discontinuous) of revisions fully processed by Hydra.
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.15 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJMWchPAAoJEE6tnN0aWvw3ndQH/iRrNOqpR1uXglgmU3B1OK5P
Frrtgdqd3Ai7wJ7gk+F24FHCsGlQaPFmzJhCrPn7nqzPsXgodAISVEHl5sczVP3o
/DmYAPrHz7yPR6ANafZGk1QaiA+Z4XL5AYhPKcwjjnKNN0kwDqT+m0zReTcXwOA8
ybr865g2dju7YMf/XpJxBQBVBvniASVOIO/twwv9651Mnf/YtpTPmNnNAMSdHcyA
MGs161jPpWbOIa7BFcLhheUue+8xf3S2qeTvAb4MGW1CA5RqBvjcxJdAG9PMzuMQ
zgFOrS4x+LkHaPfhrmSZj2kHpfJGmt2M8iLfRxWvCE+l1voo8hc2LuUGNhSrX+g=
=3Wwv
-END PGP SIGNATURE-
___
nix-dev mailing list
nix-dev@cs.uu.nl
https://mail.cs.uu.nl/mailman/listinfo/nix-dev