Commit 20dea7d4 authored by Pierre Neidhardt's avatar Pierre Neidhardt

vcs: Include links and improve style

parent 14f6a116
......@@ -2,9 +2,9 @@
#+DATE: <2016-09-28 Wed>
The first thing we should teach about driving a vehicle is where the brakes are.
I believe that the same reasoning applies to computers. Before teaching any sort
of programming or web editing, wouldn't it be reasonable to teach how to /save
your work/?
I believe that the same reasoning applies to computers. Before teaching any
sort of text/web editing or programming, wouldn't it be reasonable to teach how
to /save your work/?
There is something essential that could be taught first hand and which I believe
to be the number one skill that will remain invaluable for the rest of your life
......@@ -17,7 +17,8 @@ Version control […] is the management of changes to documents, computer
programs, large web sites, and other collections of information.
#+END_QUOTE
A concrete and straightforward example would the [[https://en.wikipedia.org/w/index.php?title=Version_control&action=history][history]] of a Wikipedia page.
For a concrete and straightforward example, look at the [[https://en.wikipedia.org/w/index.php?title=Version_control&action=history][history]] of a Wikipedia
page.
A VCS is:
......@@ -26,12 +27,12 @@ A VCS is:
- the ultimate backup,
- a looking glass to the past.
Are you a book or a blog author? A scientist? An administrator? A accountant?
If you find yourself writing and maybe collaborating with text documents of any
Are you a book or a blog author? A scientist? An administrator? An accountant?
If you find yourself writing and maybe collaborating with text documents in any
form, a VCS will be your best friend.
When computer users are not aware of the existence of VCSes, it brings them to
use poor tools for the sole purpose of saving and collaborating which yields to
When computer users are not aware of the existence of VCSes, they are left alone
with poor tools for tasks as simple as saving and collaborating, which yields to
a lot of frustration. A common example would be exchanging files via e-mail:
- It is cumbersome to send or save the attachments every time.
......@@ -40,11 +41,11 @@ a lot of frustration. A common example would be exchanging files via e-mail:
A few free, decentralized and popular VCS include:
- git
- mercurial (hg)
- bazaar (bzr)
- [[https://git-scm.com][git]]
- [[https://www.mercurial-scm.org/][mercurial]] (hg)
- [[http://bazaar.canonical.com/][bazaar]] (bzr)
A VCS will hold much of your project information:
A VCS can hold much of your project information:
- history of changes,
- version tags,
......@@ -64,46 +65,47 @@ Other features:
- Offline access: decentralization means you do not need to be connected to
perform any sort of VCS management.
- Content guarantee: content is check-summed, which means that no
data-corruption is possible without acknowledgement.
data-corruption is left unnoticed.
- Show differences across versions.
- Handle conflicts.
- Clear control of the content that is under version control: no spurious file
- Fine control of the content that is under version control: no spurious file
(temp file), no wrong save of a file, clear view at what is being synced (up
and down).
"User-friendly" sharing tools like Dropbox have the terrible drawback of hiding
the syncing operations: when offline, if you change the content then go online
again, what happens? Will Dropbox discard the changes or upload them? What if
there is a conflict, i.e. some file got changed in the Dropbox repository in the
meantime?
Popular sharing services like Dropbox suffer from the terrible drawback of
hiding the syncing operation details: when offline, if you change the content
then go online again, what happens? Will Dropbox discard the changes or upload
them? What if there is a conflict, i.e. some file got changed in the Dropbox
repository in the meantime?
If you care about the content of your files, do not use such tools. It is
essential to have full control over every VCS operation.
There is one pitfall with VCSes: once you have started working in a team, the
VCS cannot (or at least not so easily) be changed. And everybody has to abide by
the choice of the VCS. It is the only tool that team-members are forced using.
Which is why a dedicated VCS is great: it leaves freedom to the user to use
his/her own favorite tools for the rest. This as opposed to, say, Google
Documents where the full tool-suite is bundled into one service: the web
profile, the VCS, the document processor, the editor, etc.
VCS cannot (or at least not so easily) be changed. And everybody has to abide
by the choice of the VCS. It is the only tool that team-members are forced
using and must be agreed upon; the users are free to use their own favorite
tools for the rest. This as opposed to, say, Google Documents where the full
tool-suite is bundled into one service: the web profile, the VCS, the document
processor, the editor, etc.
Not all computer data is "versionable" though. Everything (pictures, videos,
music) can be uploaded to a VCS server, but to make the best out of your VCS the
content should be in text format, so that the VCS can display the differences
between versions. Besides, it is far more efficient filesystem-wise and will
save on bandwidth.
between versions. Besides, it is far more efficient in terms of disk usage and
will save a lot on bandwidth.
Avoid *Office documents: they are archived-files, a VCS will treat them as raw
data, it won't be able to "see" the content.
Avoid =.docx=, =.odt= or other *Office documents: they are archived-files, a VCS
will treat them as raw data, it won't be able to "see" the textual content.
For book or blog authoring, prefer text formats such as [[http://daringfireball.net/projects/markdown/][Markdown]] and [[https://www.latex-project.org/][LaTeX]].
For book or blog authoring, prefer text formats such as [[https://orgmode.org/][Org]], [[http://daringfireball.net/projects/markdown/][Markdown]] or [[https://www.latex-project.org/][LaTeX]].
Text-formats can have some more exotic use:
Text-formats can have some more exotic uses:
- Spreadsheets with Org-mode.
- Vector graphics with Asymptote: for geomatrical or scientific drawings, this
is much more efficient than manual drawings with Inkscape and the like.
- Vector graphics (e.g. with [[http://asymptote.sourceforge.net/][Asymptote]]: for geomatrical or scientific drawings, this
is much more efficient than drawings by hand with [[https://inkscape.org/][Inkscape]] and the like.
Last but not least, a VCS can be somewhat technical and challenging to master.
Which is why I believe a proper introductory course to be necessary.
Last but not least, a VCS can be somewhat technical and challenging to master,
especially when working in a group. Which is why I believe a proper
introductory course is necessary.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment