On 19/7/10 19:24, "Konstantin Khomoutov" <[email protected]> wrote:
> On Jul 19, 8:29 pm, Roddie Grant <[email protected]> wrote: >> My recent brush with a forgotten stash has led me to consider again an issue >> which I've never really got a complete answer to - how much information (if >> any) about a project should be kept outside Git. >> >> IOW do developers keep a note (on paper, spreadsheet, database?) of how >> branches inter-relate, their purpose and so on. <snip> > I, presonally, do not (yet) use any specific techniques for this, but > several possibilities of storing some meta-information with Git comes > to mind. > > First, is the simple usage of "annotated tags" -- tags which contain > messages attached to them. For instance, having created your > "cola_moss" branch and finalized the changes made on it, you could tag > its tip with an annotated tag and write in the annotation why the > branch was created (what feature(s) does it implement/what bug(s) does > it fix) and so on. When the customer returns back to you with the > results of testing the branch, you could just do `git show that-tag` > and get the idea about what to do next. > You could employ the fact Git stores tags in subdirectories if they > contain slashes, so you could sensibly name such tags, like this, for > instance: > $ git tag -a pending/cola_moss > When you have dealt with the branch, you can also remove any tags > pertaining to it. > > As a variation, in such a tag you could just record a URL of a ticket > in your project's tracker or of a wiki page describing the situation > etc. > > Second, it's possible to "graft" a new empty tree onto an existing Git > repository, and by "empty tree" I mean "a tree which shares no history > with the rest of the repository" which differentiates it from "normal" > trees which are created by the means of "forking" existing trees. Such > a tree could be used to store any metadata in any format you like. In > the simplest form this could be just a text file with certain notes. > Creating such a tree looks a bit like voodoo but is in fact nothing > special: > $ git symbolic-ref HEAD refs/heads/meta > $ rm * > $ rm .git/index > $ touch notes.txt > $ git add notes.txt > $ git commit -m "Create new `meta' branch" > $ git branch > master > * meta > > Then, when you need to update any bit meta info about your repository, > you check out that "meta branch", update it, then switch back. In any > aspect, it behaves exactly as any other branch. > [1] contains more background info on such branches. > > 1. http://madduck.net/blog/2007.07.11:creating-a-git-branch-without-ancestry/ Konstantin - thanks for this too. Tags don't get much coverage in Git literature, and I'd rather overlooked them. Roddie -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/git-users?hl=en.
