git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <bonzini@gnu.org>
To: Matthieu Moy <Matthieu.Moy@imag.fr>
Cc: seanh <seanh.nospam@gmail.com>, git@vger.kernel.org
Subject: Re: Using git to track my PhD thesis, couple of questions
Date: Fri, 28 Aug 2009 10:34:24 +0200	[thread overview]
Message-ID: <4A979690.1050601@gnu.org> (raw)
In-Reply-To: <vpqk50pasek.fsf@bauges.imag.fr>

On 08/27/2009 10:55 PM, Matthieu Moy wrote:
> seanh<seanh.nospam@gmail.com>  writes:
>
>> I'm planning to use git to track my PhD thesis as I work on it and to
>> let my supervisors track it. I've setup a git repository and a gitweb
>> instance showing it. There are a couple of specific requirements.
>>
>> 1. My supervisors don't want to see all the little commits that I make
>> day by day.
>
> I'm not sure I understand why you want that. From what you say, your
> supervisors won't be looking at the LaTeX source, so they won't read
> the diffs for the commits. Instead, they will be looking at regular
> snapshots in PDF. So, how is that disturbing to keep the intermediate
> commits ?
>
>> So I'll commit to a dev branch, then whenever I've made
>> significant progress will merge it into a trunk branch. I want the trunk
>> branch to get all the changes but as one big commit, not inherit all the
>> little commits like a normal merge would do. I think this is a `git
>> merge --squash`.
>
> It is, but this also means _you_ will somehow lose your intermediate
> commits. Well, you may not really lose them, but after a merge
> --squash, you have two options to continue working: work on top of the
> squashed commit (and then your ancestry doesn't contain the small
> ones), or work on top of your previous branches (and then, you don't
> have a proper merge tracking, and you'll get spurious conflicts if you
> try another merge --squash).

You can also merge from the master to your working branch after every 
merge --squash.

    ... work on local ...
    git commit
    ... work on local ...
    git commit

    git checkout master
    git merge --squash local; git commit -m'day 1'
    git checkout local
    git merge master

> I also used a revision control system to write my Ph.D (Git was born
> after I started writting, so it wasn't Git yet), and my reviewing
> system has been all the more simple: when a chapter is done, send an
> email with the PDF attached, and "Hi, chapter $n is done, can you have
> a look?". That just works.

That's the same I did.  I used git, but only locally.  I never published 
the repository for my supervisor, she didn't care.

>> Normally I wouldn't commit the PDF files into the repo because
>> they're compiled files not source files, but it seems that just
>> building a PDF and committing it along with each commit to trunk
>> would be by far the easiest way to achieve this. But will git store
>> the PDFs efficiently, or will the repo start to get really big?
>
> Git will do delta-compression as it can, but I don't think PDFs will
> delta-compress very well, so your repository may grow rather quickly,
> yes. If possible, commit the PDFs on a separate branch so that you can
> easily keep your clean history small in disk space, and discard the
> PDFs if needed.

That's a good advice.  Remember to delete the branch reflog too if you 
want to clean the history.

You can also try \pdfcompresslevel=0, which would probably make 
delta-compression behave better at the expense of distributing bigger 
files to your supervisor.  If you use hyperref, see this:

    http://www.tug.org/pipermail/pdftex/2003-August/004402.html

Best of all would be to have filters doing/undoing the PDF compression, 
but I know of no free program doing this.

Paolo

  reply	other threads:[~2009-08-28  8:34 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-27 20:34 Using git to track my PhD thesis, couple of questions seanh
2009-08-27 20:41 ` Sverre Rabbelier
2009-08-27 20:55 ` Matthieu Moy
2009-08-28  8:34   ` Paolo Bonzini [this message]
2009-08-28  8:46     ` Matthieu Moy
2009-08-28 13:37       ` seanh
2009-08-28 13:51         ` Matthieu Moy
2009-08-28 13:54           ` Matthias Andree
2009-08-28 15:12             ` Merging in Subversion 1.5 (was: Re: Using git to track my PhD thesis, couple of questions) Jakub Narebski
2009-08-28 15:29               ` Avery Pennarun
2009-08-28 15:44                 ` Matthias Andree
2009-08-28 16:19                 ` Merging in Subversion 1.5 Jakub Narebski
2009-08-28 16:28                   ` Matthias Andree
2009-08-28 16:34                   ` Avery Pennarun
2009-08-30 19:41               ` Merging in Subversion 1.5 (was: Re: Using git to track my PhD thesis, couple of questions) Sam Vilain
2009-08-31  5:47                 ` Dmitry Potapov
2009-08-28 21:42           ` Using git to track my PhD thesis, couple of questions david
2009-08-28 15:50         ` Paolo Bonzini
2009-08-28 16:12         ` demerphq
2009-08-28 21:44           ` david
2009-08-28 22:16             ` demerphq
2009-08-27 21:38 ` Junio C Hamano
2009-08-27 22:21 ` demerphq

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A979690.1050601@gnu.org \
    --to=bonzini@gnu.org \
    --cc=Matthieu.Moy@imag.fr \
    --cc=git@vger.kernel.org \
    --cc=seanh.nospam@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).