I'm new to GIT and I'm having long thoughts about how to use GIT to manage my projects structured as below.
CODE1 - .metadata L appleserver L shared-code-archive = common with bananaserver L logger-archive = common with bananaserver CODE2 - .metadata L bananaserver L shared-code-archive = common with appleserver L logger-archive = common with appleserver The .metadata is the Eclipse metadata and is project specific to appleserver or bananaserver appleserver has project specific code and is versioned as 1.0, 1.1 etc shared-code-archive is shared code, and has its own versioning as 1.0, 1.1 etc. logger-archive is shared code, and has its own versioning as 1.0, 1.1 etc. Appleserver ver 1.0 depends on ver 1.5 shared-code-archive, and ver 1.3 of logger-archive. Appleserver ver 1.1 depends on ver 1.6 shared-code-archive, and ver 1.3 of logger-archive. I need to be able to manage appleserver project such that, when I checkout version 1.0 of apple server, I need the dependent versions to get checked out automatically. The following solutions come to my mind. 1) create individual repos inside CODE1 and CODE2 including everything in it. cons: the shared-code-archive and logger-archive is duplicated. If I want to merge the changes CODE1/shared-code-archive to CODE2, I will have to do it manually 2) put both CODE1 and CODE2 together like CODE3 - .metadata L appleserver L shared-code-archive = common with bananaserver L logger-archive = common with bananaserver L bananaserver Create individual repos inside each of the folders, and have some script in the "master_folders", the appleServer and bananaServer, which automatically checks out the corresponding versions from .metadata, shared-code-archive, logger-archive cons: scripts have to be created and set up to run at commits, and I am not sure how complex that can be. 3) setup same as 2, but create branches within shared-code-archive as shared-banana-branch, and shared-apple-branch and make corresponding commits on these branches. ie ver 1.0 of appleServer depends on ver 1.0 of shared-apple-branch. There can be a scripts in CODE3 folder for checking out, say checkoutAppleServer, which will checkout the same version is the appropriate branches. cons: If I want to try out something experimental, I will have to create an experiment branch on appleServer, shared-code-archive, and logger-archive. Can this be done in 1 step? If I have to changeover to another branch, I will have to take care of each folder individually. Well, these are my thoughts. I was wondering if there are built in features in GIT to manage such things. -- 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 git-us...@googlegroups.com. To unsubscribe from this group, send email to git-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/git-users?hl=en.