[cvsnt] dummy cvs directories

Joe Enfield joeenfield at hotmail.com
Wed May 4 15:12:20 BST 2005


I was looking through netbeans site, and noticed the tidbit pasted below...

Would this work with cvsnt?  I gave it a quick try, and it didn't seem to
work.  but the idea is intruiguing...
Anyone have any experience with this?

Thank you,
Joe E.

-----------------------------------
Copied/Pasted From:
http://www.netbeans.org/community/sources/cvs.html

Maintaining Multiple Checkouts

If you use CVS on netbeans.org heavily, you probably have many or most
modules checked out; you may have multiple branches checked out in different
places; and so on. In fact you may have sources from other CVS repositories
checked out too. Since the daily bread of sharing a repository with many
other people is cvs update (or cvs update -d), you would quickly go crazy
changing directory into each module in turn and updating in it alone.

So it is better to have all of your different checkouts in one big "active
sources" tree, and update from the top of it every morning or whenever you
like. Sometimes it is a good idea to check in changes to multiple modules
simultaneously, too, especially if you are making interdependent changes
(i.e. checking in half of them would break things).

There is a way to set up such a checkout tree with CVS. First, decide on
some tree structure and check out whatever you like. For example, it could
look like this:

src/               all active sources
  nb_all/          everything on the netbeans.org trunk
    openide/       trunk of openide pseudomodule
    core/          etc.
    html/
    ...
  sandwich/        sandwich experimental branch
    openide/       sandwich branch of openide
    core/          sandwich branch of core
    html/          trunk of html
    ...            trunks of selected other modules...
  ant/             Jakarta Ant project
  ...              other repositories and branches...

Now find all of the "dummy" directories that do not correspond to an actual
directory in any CVS repository, and specifically were not created by any
CVS checkout command. In this example, there are src, nb_all, and sandwich.
You should create the CVS metainformation directories for these manually.
The repository path CVSROOT/Emptydir is magic and tells CVS you are making a
dummy directory. So for example:

src/
  CVS/
    Root           one line: :pserver:yourname at cvs.netbeans.org:/cvs
    Repository     one line: CVSROOT/Emptydir
    Entries        lines:    D/nb_all//// and D/sandwich//// and D/ant////
etc.
  nb_all/
    CVS/
      Root         one line: :pserver:yourname at cvs.netbeans.org:/cvs
      Repository   one line: CVSROOT/Emptydir
      Entries      lines:    D/xxx//// for each subdirectory xxx
  sandwich/
    CVS/
      Root         one line: :pserver:yourname at cvs.netbeans.org:/cvs
      Repository   one line: CVSROOT/Emptydir
      Entries      lines:    D/xxx//// for each subdirectory xxx
      Tag          one line: Tsandwich
  ...

Now all CVS operations should work naturally within your master src
directory.





More information about the cvsnt mailing list