On Sat, Dec 29, 2012 at 8:20 AM, Lluís Batlle i Rossell <[email protected]>wrote:

> (top post, due to the complexity of the previous post)
>
> I've found many git-fans that are completely ashamed of how they develop.
> And
> they would never make public how they commit things (how they use the
> VCS), so
> they don't accept other VCS that hasn't git rebasing capabilities.
>
> I can't tell what was first: the shame, shameful vcs usage, or the access
> to
> rebase feature.
>

I'm one of those "losers" who uses fossil as a sort of backup work area
sync tool in addition to a pure SCM. Now I don't personally feel the label
loser applies to me but I'm using it here because repeatedly now on this
list, intentional or accidentally, folks are using words that leave  the
impression that people who use fossil this way are, well, losers. Judging
others in this way is not constructive IHMO. Perhaps instead try to
understand why people are compelled to do this "wrong" behavior and perhaps
enhance the tool(s) to make it unnecessary. Rebase exists because it meets
a real need. The question is, can that need be met in a more elegant way
with fossil?

I work on several projects that are spread out over different machines and
are not always accessible to me from all locations where I work. I often
(yes, often) have work in progress that is far from polished yet if I don't
check it in I have no easy way to continue working later from a different
location. The pragmatic solution for me is to check in the current state of
the code regardless of whether it is polished or not. I even (horrors)
occasionally check in stuff that won't compile.

I could use private branches to keep this clean but that adds another thing
to remember and manage to my already overfilled plate and I've found it
very easy to accidentally lose work with private branches. What I would
like is a way to mark branches as hidden. A hidden branch does not show up
on the timeline. In the UI there would be a "show hidden branches" button
but by default they would not show.

I could do my messy work on a branch that I will later hide and when happy
with the result merge to a branch that I would keep visible. This keeps
history intact but makes a nice uncluttered clean view available that
captures only the important aspects of development and hides the noise.

Just my $0.02. Cheers and seasons greetings to all fossilers :)


>
> I dislike how git handles rebase, because by default it does not invite to
> rewriting commit logs. If you read git manuals, you are told that each
> commit
> (and its log) refers to a unique *file tree* (represented by the hash),
> and not
> to a *diff*. But then, they wrote 'rebase', which keeps the commit logs,
> but
> changes all the file trees they were meant for.
>
> Then you have commit logs that say "I tested this, and this works". If you
> rebase that commit, that looses all that meaning. In fossil, a hash refers
> to a
> specific file tree, that never changes, and checkin comments refer to that
> hash.
>
> History rewriting also implies that what you could have in your brain
> memory on how you developed something could not match what you have left in
> the VCS -
> after mangling with rebase. I find this also another source of problems.
>
> Regards,
> Lluís.
>
> On Sat, Dec 29, 2012 at 02:53:23PM +0000, Eric wrote:
> > On Fri, 28 Dec 2012 16:06:08 -0600, Nico Williams <[email protected]>
> wrote:
> > <snip>
> >
> > Actually I agree with most of Mike Meyer's reply, but I wanted to pick
> > this paragraph apart:
> >
> > > How many times have you submitted a patch to an upstream
> >
> > Well, phrasing it like that says that you are thinking git-style anyway.
> > Let's assume a Fossil push with one commit nominated as "this is my
> > current contribution".
> >
> > > and then been told to make a bunch of changes,
> >
> > That's only to be expected, so you create a new commit based on your
> > previous nominated one, push it and tell them which is your new commit.
> >
> > > re-organize your commits,
> >
> > I don't see why they (the centre) should do that. It's the result that
> > matters, and if they want a pristine tree that includes only approved
> > commits they can do that. (See below.)
> >
> > > make specific changes to specific commits,
> >
> > Why, why, why? It's the result that matters, this is just rewriting
> > _your_ history because they feel like it.
> >
> > > and/or squash commits?
> >
> > Again, this is about them wanting a pristine tree. Their problem.
> >
> > > Yeah, that's why rebase is good.
> >
> > Rebase is a lie!
> > Rebase is a lie!
> > Rebase is a lie!
> >
> >
> > Now for the "pristine tree" thing. I don't agree with it but if that's
> > what the project leads want, they can
> >
> >   1) not permit pushes or syncs, only pulls, and take only real patches,
> >      which they turn into commits themselves
> >
> > or
> >
> >   2) have two repositories, a working rep which everybody syncs with, and
> >      a clean one. Then have a command/script like
> >
> >          accept <commit-in-working-rep> <parent-in-clean-rep>
> >
> >   which creates a new child commit in the clean rep and does a pull back
> >   into the working rep, and which is simple in concept, though there
> >   will be issues about moves and deletes.
> >
> >   Working this way also raises issues about what to do with wiki pages,
> >   tickets, and events.
> >
> > These approaches are not the outright lie that rebase tends to be,
> > but merely the leads saying "here is the history of the things we have
> > approved". They are then depriving everyone of the history of blind
> > alleys (which will therefore be followed again and again) and of the
> > ideas whose time had not yet come (which will therefore have to be
> > re-invented from scratch, or may even be forgotten altogether!).
> >
> > I think the correct way to deal with "unwanted" commits is to make proper
> > use of branches, and perhaps to have a UI option which shows only things
> > in a specified set of branches.
> >
> >
> > Incidentally, there is nothing stopping you, as a remote, barely-trusted
> > developer (which is what you are in that sort of scenario) from running
> > the two-repository process yourself, so that you sync only from your
> > "clean" repository.
> >
> > I also think that much of the "mess" in repositories that people seem to
> > want to hide is the result of committing far too frequently, usually in
> > the mistaken belief that their VCS is some sort of backup system.
> >
> > Eric
> > --
> > ms fnd in a lbry
> > _______________________________________________
> > fossil-users mailing list
> > [email protected]
> > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
> _______________________________________________
> fossil-users mailing list
> [email protected]
> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users
>
_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to