Subject: git-p4 workflow suggestions?

From: Sam Hocevar <[email-masked]>
Date: Mon, 9 Mar 2009 15:21:08 +0100

Dear list,

   I have modified git and git-p4 to a point where they are usable in
my work environment. I am now faced with a new problem: Perforce's
composite workspaces. They allow you to "mount" parts of the repo onto
other directories, even nonempty ones.

   Take the following example repository, where a "framework" project
contains an example subdirectory with build files and other directories,
and a "project1" project contains subdirectories that are meant to
replace the ones in "example":

   //work/framework/example/src/
                           /include/
			   /Makefile
			   /...
   //work/project1/src/
                  /include/

   Using the Perforce client, one can reorganise the workspace
so that project1/src/ transparently replaces the contents of
framework/example/src/ (same for */include). All the work is then done
in the framework/ local checkout, but commits may also affect project1/.

   I could not find a way to do the same with git and git-p4. My main
requirements are the following:

   - preserve the atomicity of commits affecting both project1/src and
   project1/include (having to commit from a different directory due to
   symlink hacks is acceptable to me, even if not terribly practical)

   - have git-p4 rebase work without requiring tedious merges

   - *if possible* (but not a strong requirement), preserve the
   atomicity of commits affecting both framework/ and project1/.

   If anyone ever ran into the problem, I'd like to hear from their
experience. Or maybe someone will have suggestions based on similar
requirements.

Cheers,
-- 
Sam.