Thank you sir! This is exactly the type of thing I am looking for. I
appreciate the time you put into this.
—
Hi Sam.
Welcome aboard. I think Fossil is excellent, and I hope you will too.
I'm typing on a mobile device ATM, so please excuse the brevity and spelling
errors.
I use fossil for all my personal projects, as well as professionally. For
personal projects, I make a project-specific dir under my project containing
dir ("~/work"), such as ~/work/foo/, and create an out-of-tree repo: cd
~/work/foo; fossil new ../fossils/foo.fsl; fossil open ../fossils/foo.fsl .
Then, in the project dir I make ./doc, ./src/vendor, ./test. Supporting
third-party code goes into ./src/vendor/libawesome (for example), my own code
goes into ./src, docs to ./doc, and tests to ./test.
For an imaginary "lib awesome" project that I want to build against, I place
the code in ./src/vendor/libawesome, "fossil add ./src/vendor", then commit it
to it's own branch: fossil ci -m "libawesome v.1.2.3" --branch vendor
For my own code, infrastructure, I go back to trunk (fossil co trunk), add my
files: (cd ~/work/foo; fossil add ./Smakefile ./src/*.c ./src/*.h.in) and do
initial commit: fossil ci -m "initial commit".
If you feel you need/may patch your vendor code, you can: fossil co vendor;
[hack hack hack]; fossil ci -m "custom patches against lib awesome for project
foo" --branch vend_patched -- and maintain this along with upstream lib awesome
updates: fossil co vendor; [dump lib awesome v1.2.4 code over 1.2.3]; fossil ci
-m "update lib awesome 1.2.3 -> 1.2.4"
Import to vend_patched: fossil co vend_patched; fossil merge vendor; [check for
conflicts, correctness], fossil ci -m "merge latest lib awesome 1.2.4 from
[vendor]"
Back to the code your writing yourself: fossil co trunk; fossil merge
vend_patched; fossil ci -m "import supporting vendor code"; [hack hack hack];
fossil ci -m "my useful commit msg here"; [hack hack hack]
... now you (still on [trunk]) want to start on a potentially build-breaking
experimental feature: a bunny themed widget set. Start hacking in bunny-code,
but at first commit: fossil ci -m "start of bunny conversion" --branch hop_hop
You've now got two branches that are interesting to you: current stable
production in [trunk], and the Next Big Killer Feature (not ready for prime
time), in hop_hop.
You hack on [hop_hop] (which is a derivative of [trunk], and improve it. Along
the way though, your boss says: "I've heard lowercase is the new black; make
all the dialogue in our current project lowercase. No title case, upper case,
camel case... All user facing text is lowercase".
[hop_hop] is still WIP (work in progress), not ready for public consumption, so
you go back to [trunk] (which you are shipping). You're in the middle of
hacking [hop_hop], and you're not really ready to commit, but you don't want to
lose your work. No problem. Stash it. fossil stash add -m "hop_hop fluffy tail
feature - incomplete"
Your work is safe in a "stash" that is shared among all branches, and you have
no pending commits in your working set (you just stashed it, and when that
partial work was stashed, the pertinent files were reverted to the state of the
last commit.)
You prepare to start lowercasing: fossil co truck; [hack hack hack]; fossil ci
-m "lowercase here, lowercase there", and change all user dialogue, etc to
lowercase, committing as you convert. You tag a new release: "fossil tag add
foo_5.4.3 trunk", notify q/a and release management, and get back to bunny
hacking.
fossil co hop_hop
You start making a game plan for finishing fluffy tail feature, when you
realize that the super-awesome lowercasing you just finished isn't in your
hop_hop codebase. No problem: fossil merge foo_5.4.3; [check work for
conflicts, nice importing]; fossil ci -m "import lowercase excellence from
[foo_5.4.3]"
Now, pick up your partial fluffy tail implementation: fossil stash pop (pops
last stashed item like a stack operation), and you're ready to finish your
interrupted coding and finish bunnifying. As you finish coding and commit, your
boss comes up and says: "What have you been working on these last 3 weeks?"
"I'll show you," you say!
fossil server
[Open Firefox or opera, or chrome, etc], http://127.0.0.1:8080/
You are taken to the Foo Project Repository homepage, and from there you browse
the timeline which has a pretty layout of each commit, each branch, each merge,
each tag... Your boss is impressed.
"I'm impressed. But I want to give you some feature requests we've collected
from clients. Would you like them as a crumpled collection of post it notes, or
some other format?"
You say: "Point your IE4 browser to 192.168.0.99:8080/, log in as "superboss"
like I showed you, and add each item as a feature-request ticket, so we can all
see the requests, and their state, and append notes to each feature as
necessary."
OK, says your boss, a glob of post it notes trying to break out of their pocket
as they head back to the bosses computer to key in tickets...
I could go on (I think I will, later), but I'm tired and I'm wearing a hole in
my touch screen. I sure hope this provided some useful info. Missing
(currently) is multi-dev collaboration, hacking on an aeroplane, events, wiki,
and more...
(Proof reading: "excuse the brevity"... Ha ha. Zzzzzzzzzz.)
On Aug 7, 2013 4:34 PM, "Sam" <[email protected]> wrote:
>
> Hello Fossil Users,
>
> I'm new to fossil and getting more involved in software development work
> after a significant break doing non-development IT work. I've started using
> fossil for some professional work and all my personal projects. I love the
> design and simplicity of fossil.
>
> If a few of you could take the time to summarize your workflow with fossil,
> from starting a new project in a green field to the first production release,
> I would highly appreciate it. I know there is not one supreme workflow, I'm
> just looking for examples. I understand fossil's basics, but the meaning and
> function of some commands are still illusive to me. I would also like
> examples of what you do through the project's lifecycle, including the
> creation of branches (like a test or experimental branch). If you think of
> any things that confused you or you changed over time, please share that. If
> you know of a blog post or another write-up that fits this description,
> please point me to it. Thanks everyone.
>
> Regards,
> Sam
>
> _______________________________________________
> 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