What I am used to:
- Archives on the servers (NY, IN, NC)
- On my development machine:
- A directory named ~/work
- Subdirectories named ~/work/NY/devproject, ~/work/NC/project etc
- Not infrequently, subdirectories named ~/work/NY/release/1.3/project, ~/work/NY/test/1.3b/project etc
- Sometimes directories named ~/proxy/NY, ~/proxy/NC etc which contain a disposable local cache of the archives in order to reduce network traffic for reads. These directories can be deleted at any time.
- A scratch build that deletes ~/work/... and repopulates it from the archives
But with DVCS that doesn't make sense
- The archives are on my development machine, but a near-clone is on a remote machine for backup reasons.
- Doing a scratch build would mean deleting and re-pulling the whole archive, which seems costly.
- It looks like I have directories named ~/git/git.git/git which is a lot of gits.
Do people do all their development in ~/git? If you need to work with dev, test, release, and one-off-for-big-client versions, are these under ~/git, or can they be elsewhere in their own trees? Where do third-party components go? Is this too big for SO (do I need to read a book), or can it be answered with an ASCII tree diagram?