Live data from Hacker News

Fossil Versus Git

fossil-scm.org

41–50 of 89 posts

Re: Fossil Versus Git

#41
Git features the "rebase" command which can be used to change the sequence of check-ins in the repository. Rebase can be used to "clean up" a complex sequence of check-ins to make their intent easier for others to understand. From another point of view, rebase can be used to "rewrite history" - to do what Winston Smith did for a living in Orwell's novel 1984.

This is FUD. Git never erases history; it merely moves mutable refs around. When you rebase a branch called "master", nothing is rewritten: a new immutable commit history is created, and the ref "master" is moved from pointing at the old history to pointing at the new history. The old history still exists in all its glory at "master@{0}". (And when you change that, it goes to master@{1}, and so on.)

If git didn't have the concept of refs, then this would never even worry anyone. Once you have commit ab387df, it's refers to the same sequence of changes for all eternity. What master points to may change out from under you, but the history never goes anywhere.

The only way to "rewrite history" is to delete every copy of the repository ever made, which is exactly how you would rewrite history with Fossil or Subversion or anything.

(And now, if I may, a digression. I've noticed that the "rewriting history" aspect of Git makes for a good personality test. It's strongly polarizing -- the people that think source control is designed to be documentation love it, and the people that think source control is an audit mechanism hate it. Control freaks hate git, and long-haired hippies seem to love it.)

Re: Fossil Versus Git

#42
post #20
post #18

Earlier quoted context omitted.

He kinda contradicts himself. "Then took the other, as just as fair, / And having perhaps the better claim, / Because it was grassy and wanted wear;" seems to imply that the one he took was indeed "less traveled"; but then, immediately, "Though as for that the passing there / Had worn them really about the same,". It doesn't seem to me that there's any Right Answer to the question: Are we supposed to understand that…

It doesn't seem like a real contradiction — it can be easily harmonized as an ironic way of saying they were identical, but he wanted there to be some difference. From the description, can you tell me which road he took? I agree with you on the title though. It puts a really nice spin on the poem.

[deleted]

Re: Fossil Versus Git

#43
post #31
post #27

"The lack of a 'rebase' function is considered a feature of Fossil, not a bug." It's not as if rebase is commonly used. It's there for those rare instances when you, say, remove a file that it turns out you don't have the copyright for and need to purge it completely, or that huge binary file some newb (ok, it was me) committed a while back that's not needed and makes cloning take 10 minutes. Fossil looks really exci…

It's not as if rebase is commonly used. This is widly incorrect. Powerusers of Git use rebase extensively , pretty much every patch that makes it into Git itself has been rebased at least half a dozen times. I rewrite my history constantly, because when writing code I commit all the time, then I squash commits together later and give them proper commit messages. I wouldn't use any SCM tool that wouldn't give me this…

Not to mention that gerrit doesn't tend to like merge commits.

Re: Fossil Versus Git

#44

Earlier quoted context omitted.

if you stash everything you're not committing, then the working copy becomes the staging area, and the stash becomes the working copy. how is that any different? seems to me both systems have a method of choosing what to commit, in git you can choose to stash or stage, in the others you can only stash since they "don't have a staging area". git++ for having both options.

Git has many commands which allow fine-grained manipulation of the staging area; stashes are a crude afterthought in comparison. The problem is that highly encouraged workflows like "git add --patch" inevitably lead to toxic commits which were never tested because they never truly existed in the workspace.

Commits aren't dangerous until you push them. You can very easily rebase out a committed patch after you've tested it.

Re: Fossil Versus Git

#45

Earlier quoted context omitted.

Agreed. Having a small community and not being well-known are not advantages. They try to say that your voice will be comparatively louder and you'll get more attention from the developers, but in a large community, you get attention from the community as well. The only thing you can get from using an unpopular project is an adrenaline rush from living on the edge.

Having a small community and not being well-known are not advantages. I am not sure I can agree with this. Smaller communities are often nicer. Think of all the talk around here of growing pains, loss of niceness, comparisons to Reddit or Dig, eternal September, etc. that have come about as the community grows.

That's one way in which a discussion community like HN is different from an open-source product-user community.

Re: Fossil Versus Git

#46

"Git provides file versioning services only, whereas Fossil adds an integrated wiki, ticketing & bug tracking, embedded documentation, and News/Blog features. These additional capabilities are available for Git as 3rd-party user-installed add-ons, but with Fossil they are integrated into the design." Am I the only one who's actively suspicious about this kind of thing? With Git, I can use whatever wiki, ticketing, do…

I would argue that Github has many if not all of those features.

Wiki - check

Ticketing & Bug Tracking - Github has 'issues'

Embedded documentation - include a README file in your repo, and Github immediately shows that under your project

News/Blog features - Github has pages, and automatically generates RSS feeds for your commits.

I'd argue that Github does all these things better than Fossil (or I) can ever do - they have a whole design team constantly worrying about ease-of-use.

Re: Fossil Versus Git

#47
post #40

Earlier quoted context omitted.

Agreed, without rebasing the history for projects with lots of developers quickly becomes a mess. > Fossil deliberately avoids rewriting history. Fossil strives to follow the accountants philosophy of never erasing anything. Mistakes are fixed by entering a correction, with an explanation of why the correction is needed. This can make the history of a project messy, but it also makes it more honest. I'm not sure how…

It's not just "oops, typo", but also "oops, someone checked in something proprietary." Being able to scrub the version history before you publish it is more or less is almost a requirement in certain environments.

This is actually solved in fossil via "shun". The case of publishing a password or credit card numbers or $seriousMistake will be attributed to an artifact. Applying "shun" to that artifact will prevent it from being pushed to remote repos, and, on repo rebuild (a local operation), that artifact will be completely removed from the repository (locally). The list of shunned artifacts is maintained forever however, so if the artifact is re-introduced via a pull from some other repo, the shun that was previously applied will still be in effect, and keep the artifact from being further propagated by this repo.

Re: Fossil Versus Git

#48
post #18
post #13

Earlier quoted context omitted.

It also backs this point up with yet another abuse of the most misquoted poem ever, Robert Frost's "The Road Not Taken." The poem isn't actually in praise of making unusual choices — it's about rationalizing the choices we make so that they seem more intelligent and important than they actually were. In the text of the poem, the narrator goes to great lengths to make it clear that he can't tell any difference between…

He kinda contradicts himself. "Then took the other, as just as fair, / And having perhaps the better claim, / Because it was grassy and wanted wear;" seems to imply that the one he took was indeed "less traveled"; but then, immediately, "Though as for that the passing there / Had worn them really about the same,". It doesn't seem to me that there's any Right Answer to the question: Are we supposed to understand that…

  TWO roads diverged in a yellow wood, ...

  [Road "First", aka "Scary Road"]
  And looked down one ... To where it bent in the undergrowth; ...

  [Road "Other", aka "Happy Road"]
  Then took the Other, as just as fair,
  And having perhaps the better claim, ...

  Oh, I kept the First for another day!
In other words, "I didn't take the First road; I took the Other road."

Substituting, this brings us to, "I didn't take the Scary Road; I took the Happy Road."

Then, the key is...

  Though as for that the passing there	
  Had worn them really about the same, ...
This means "both roads were equally traveled". So therefore we must extrapolate into the future. Take a thousand average people. Not entrepreneurs; think more along the lines of Grandma. Now show them a Scary road and a Happy road, then ask them to choose. Which one are they more likely to select?

I'd say the Scary road is the one "less traveled".

  I shall be telling this with a sigh, ...
Why would he sigh if he were not lying?

  Two roads diverged in a wood, and I—	
  I took the one less traveled by
This means he claimed to have taken the "less traveled" road, which is the Scary road. But he took the Happy road.

Therefore, the poem is about a lie.

Re: Fossil Versus Git

#49
post #18
post #13

Earlier quoted context omitted.

It also backs this point up with yet another abuse of the most misquoted poem ever, Robert Frost's "The Road Not Taken." The poem isn't actually in praise of making unusual choices — it's about rationalizing the choices we make so that they seem more intelligent and important than they actually were. In the text of the poem, the narrator goes to great lengths to make it clear that he can't tell any difference between…

He kinda contradicts himself. "Then took the other, as just as fair, / And having perhaps the better claim, / Because it was grassy and wanted wear;" seems to imply that the one he took was indeed "less traveled"; but then, immediately, "Though as for that the passing there / Had worn them really about the same,". It doesn't seem to me that there's any Right Answer to the question: Are we supposed to understand that…

[deleted]

Re: Fossil Versus Git

#50

Git features the "rebase" command which can be used to change the sequence of check-ins in the repository. Rebase can be used to "clean up" a complex sequence of check-ins to make their intent easier for others to understand. From another point of view, rebase can be used to "rewrite history" - to do what Winston Smith did for a living in Orwell's novel 1984. This is FUD. Git never erases history; it merely moves mut…

re: digression

I don't use rebase and I can't say that I like it, but that doesn't make me hate git. I commit all my crappy and stupid intermediate code (for my personal projects).

Post reply on HN