On Oct 30, 2015, at 2:37 PM, Scott Doctor <sc...@scottdoctor.com> wrote:
> 
> Embarcadero RAD Studio incorporates Git, Mercurial, and Subversion into the 
> IDE.

Yes, it would be nicer if more IDEs had Fossil plugins.

That said, I always have a terminal window up, cd’d into the project, so even 
when using something like Visual Studio, a quick Alt-Tab and “f ci” is no 
trouble.

> What I meant was I end up spending much time trying to get the tools to do 
> what I want it to do versus how it wants to do it.

Examples, please.

> I fully see the utility of a VCS on collaborative projects. My project is for 
> my own research work and is not used by any clients. I am also the only one 
> who plays with my code. So some of the utility needed for collaborative 
> efforts becomes cumbersome for a solo project.

I’ve used Fossil for solo work, and it’s still greatly preferable to the 
alternatives.  In addition to drh’s points:

1. Multi-machine sync.  I view laptop computers as a compromise, something to 
use when you can’t use a desktop computer.  Since I can’t always restrict my 
coding activities to a single location, that means I occasionally have to sync 
my work to a laptop, or between two different desktops.  Fossil does that, and 
does so in a much easier fashion than other DVCSes.  (f all sync!)

Dropbox and such are poor alternatives, since I don’t want my object files and 
executables sync’d to the cloud, and I don’t want to see a throbby little icon 
in the corner of my vision every time I save a file.  I want to batch my syncs 
up, do them on my schedule, and send only source files, no object files.

2. Deduplication.  Your versioning scheme requires needless copies of unchanged 
files.  Fossil only stores what is needful, which means I can download the 
entire history of a project without even thinking about it.

I suspect if you checked all the past versions of your system into a single 
Fossil repo, it would be about the size of 3 or 4 of your existing “whole 
project” archives.  So, you’ve got a choice: in the same bandwidth/disk space 
as a handful of archives, you can have all the history, or just the most recent 
history.

3. Comments.  I used to keep a paper log book of the things I was working on, 
so I could go back later and figure out what I did and why.  Searching the 
comment stream of a Fossil timeline is far better.

4. Wiki and technotes.  When I have too much to say to fit into a comment box, 
I can write an article about it, which gets sync’d to my various development 
machines.

5. Tickets.  I used to keep a Wishlist or TODO file in each project, containing 
the things I wanted to do next.  Tickets do that better, since you can 
prioritize them, search them, reference them from checkin comments and wiki 
articles, etc.

You can have my Fossil after I *become* a fossil. :)

> Before I start writing a new function, process, or other modification, I 
> create a sub-folder of my backup folder which are numbered in sequence. The 
> file system applies a date to the creation time of the folder which 
> identifies when the backup was made. I then simply copy my entire project 
> folder into the backup folder.

This is easier than “fossil ci --tag v1.2.3” or “fossil ci --branch 
expermental-feature”?

For solo projects, branch merging is nearly trivial, since the chances of 
colliding changes is near-zero.

And if you do find yourself changing the same area of code on two different 
branches, it’s easy to say something like “f merge trunk” from the branch to 
sync changes made in the trunk into the experimental branch, so you can 
overwrite some of the recent trunk changes without confusing Fossil.

> If I break the code, or decide to revert the changes, I restore the project 
> from the desired backup folder.

That’s easier than “f up trunk” to toss a bad branch, or “f revert” to toss 
uncommitted changes, or “f up v1.2.3” to roll back to a prior stable version?

> I am finding them just as cumbersome of a process with an added layer of 
> things to go wrong.

I rarely find Fossil failing in ways I can’t understand.  And every time it has 
happened, someone on the list has explained it.

(For instance, my recent thread about how to clip off a a branch via the 
command line when the UI can’t do it because it was created empty, something 
Fossil can’t do, but which apparently CVS or SVN can, so it got into my Fossil 
tree when I converted.)

This as compared to the sentiment in the XKCD comment, where if Git screws up, 
it’s often simpler to just toss the checkout and start over than try to recover.

Another example is the “double tip” stuff we’ve seen on the list.  Fossil now 
diagnoses that problem, allowing you to correct it before it becomes a serious 
problem.

For the most part, Fossil obeys the principle of least astonishment.

Maybe that’s because I’ve been conditioned by ~15 years of CVS and SVN, so I 
know how VCSses are supposed to work.  If so, this is where we need your 
concrete examples.  How is Fossil astonishing you, in a bad way?
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to