From: Thomas Rast <trast@student.ethz.ch>
To: <git@vger.kernel.org>
Cc: Jens Lehmann <Jens.Lehmann@web.de>
Subject: Submodules or similar for exercise/exam management
Date: Thu, 18 Nov 2010 11:09:08 +0100 [thread overview]
Message-ID: <201011181109.08345.trast@student.ethz.ch> (raw)
Hi all
[Jens, I was hoping you'd have some insight, but of course everyone is
welcome to join in. I honestly never thought I'd get into the
submodule business so shortly after gittogether...]
Out of $DAYJOB issues with tracking exercises and exams, I had a
little brainstorming session with a fellow assistant yesterday. It
seems none of this has been done before? Is anyone else interested
(mainly in getting the requirements right so that the next poor soul
won't have to roll their own)?
The scenario is that we have a bunch of exercise questions stored in
one or several files, each living in a directory. Then, we assemble
those into exercise sheets (super-repos) spanning a group of questions
(submodules). We would like to track this in such a way that changes
to the questions propagate to other sheets (possibly in other
lectures) that use them.
Training everyone in full git usage is probably not an option, so any
solution would have to have some frontend that can be explained
easily.
The requirements we came up with are roughly:
1) commit across all sub-repos at the same time (atomicity nice but
optional)
1b) tag across all sub-repos
2) do recursive clone/update of one super-repo easily
3) never need to be aware of repo boundaries or manipulate sub-repo
4) sanely cope with branches etc. in case the user wants them
A sample workflow might be:
foo clone git@example.com/some/super/repo
# time passes
cd repo
foo update
# work
foo status
foo diff
foo commit -m 'one message fits all'
# possibly, but this could also be commit --no-push instead
foo push
Merges are expected to be rare but would happen every so often.
It seems repo can do (2) and (4) but violates (3) [requires use of
git-commit and others in the sub-repo]. git-subtree can do (1) and
(2) but probably violates (3) [need to rebase changes to sub-repo
branch] and (4). Submodules can do (2) and (4) but violate (3) and
currently have no support for (1). I think svn externals could do
(1)-(3) but violate (4) and probably (1b).
Has this been done before? Or do we need to hack up a new wrapper
around submodules?
--
Thomas Rast
trast@{inf,student}.ethz.ch
next reply other threads:[~2010-11-18 10:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-18 10:09 Thomas Rast [this message]
2010-11-18 16:36 ` Submodules or similar for exercise/exam management Seth Robertson
2010-11-22 13:20 ` Thomas Rast
2010-11-18 21:20 ` Jens Lehmann
2010-11-18 22:32 ` Junio C Hamano
2010-11-18 23:49 ` Jonathan Nieder
2010-11-22 13:56 ` Thomas Rast
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=201011181109.08345.trast@student.ethz.ch \
--to=trast@student.ethz.ch \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
/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).