Hi Thomas;
Thank you for your in-depth response!
So generally, it sounds like under git I would expect to have *many* different repositories, unlike Svn where I had one single repository which contained all the projects that we'd ever worked on. Do I understand correctly? It seems a little un-intuitive, but learning a new system always takes some studying...
Derell

On 12/02/14 00:51, Thomas Ferris Nicolaisen wrote:
On Monday, December 1, 2014 9:30:53 PM UTC+1, derell...@gmail.com wrote:

    Okay, I've got a basic /working/ directory that I want to use for
    all of my git projects: c:\SourceCode\git_work

    Under c:\SourceCode\git_work, I have the following directories:

    + library_code          # general-reference library code that is
    used by other projects
    + winagrams            # project which will access library_code
    via subtree, when I learn how
    + wfontlist                # project which will access
    library_code via subtree, when I learn how
    + ndir                      # project which will *not* access
    library_code
    + files                      # other single-file functions which
    will *not* access library_code

    What is the correct way to build all of this structure??
    I initially ran "git init" only in the c:\SourceCode\git_work,
    then used "git add ." and "git commit" in each of the
    subdirectories, to create the repository.


Git init will initialize one Git repository in the current directory. So what you did there was to make git_work into a Git repository, followed by 5 commits that added stuff to the repository.

    However, many of the online "newbie" references that I have looked
    at, appear to run "git init" in each subdirectory...  That seems a
    little odd to me; using the terminology that I've seen, it seems
    like each project would be a separate "repository", but I actually
    want one repository that contains *all* of my projects... am I
    mis-understanding exactly what "repository" means??


There are cases where it's not clear what is the right structure of your repository or repositories. I suggest the following rules of thumb:

* Things that belong together go in the same repo (tightly coupled modules for example) * Things that have nothing to do with each other go in separate repos (two unrelated projects) * Things that follow the same release cycle and versioning go in the same repository (two related projects that are shipped together)
* Things that are built separately, or in isolation, go in separate repos

Now, again, there might be cases where the above guidelines are in conflict, and to that I'll say generally: When in doubt, leave stuff in the same repo. If need be, you can always split them again in the future (but try keeping them in distinct subdirectories to make this work easier).

    I've been using Subverson for years, but I'm new to git... that is
    probably causing some confusion for me.
    I would be grateful for *any* clarification that I could get here!!!


I'd add to the above: Any "project" in SVN that has the trunk/branches/tags structure typically becomes one Git repo.

By the way, if you want to start over with Git-ifying your directories, all you have to do is to delete the .git folders created by the git init command. Warning: This will remove all the history/commits you made, but will leave all other files in place so you can start over cleanly.

And to be clear: I cannot say whether your git_work should be one repo or not. You'll have to say more about their relationships and purposes.

Finally, I suggest to put your subtree plans on hold until you've fully grokked what they are and when to use them.
--
You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to git-users+unsubscr...@googlegroups.com <mailto:git-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Git for 
human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to