{"thread":{"id":"16444","subject":"Hello All and Seeking Information","startedAt":"2008-11-24T16:28:22Z","lastAt":"2008-11-25T07:57:21Z","messageCount":5,"participants":["Tim Visher","Bruce Stephens","Christian MICHON","Jakub Narebski","Pete Harlan"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"96424","messageId":"c115fd3c0811240828y61e7bfecka1cacdd37865a4e8@mail.gmail.com","threadId":"16444","inReplyTo":null,"subject":"Hello All and Seeking Information","fromName":"Tim Visher","fromEmail":"tim.visher@gmail.com","sentAt":"2008-11-24T16:28:22Z","receivedAt":"2008-11-24T16:28:22Z","isPatch":false,"sender":{"key":"tim.visher@gmail.com","avatar":"https://gravatar.com/avatar/98307ce54bcac1a46b5d845827d5386e2a27895ff08790cdd3877ad527760575?d=mp&s=160"},"body":"Hello Everyone,\n\nI'm new to the list so I figured I'd introduce myself instead of just\nwall-flowering... \"Hello\"... :)\n\nAnyway, I really like a lot of the concepts found in Git and the\nreported power and flexibility of it are very intriguing.  However,\nthere are some issues that I can't wrap my head around, such as how\nyou can guarantee that all developers are working on the same\ncode-base without a central repo.  I would classify a lot of my issues\nas paradigm rather than technically related. I understand a lot of\nGit's underpinnings and the basic usage of it, I just can't wrap my\nhead around the higher-order parts of it.\n\nI've done some Googling and I can't find a good 'Introduction to\nDistributed SCM Concepts for Centralized SCM Developers' article yet.\nIdeally, this would be an article all about the high-level thought\nprocesses that go into utilizing Distributed SCM in a team environment\nwhere having a single canonical representation of your project that\nall developers are working off of is important.\n\nAnyway, looking forward to participating.\n\nP.S. Anyone want to tell me why the Git Mailing List was set-up\nmonolithically rather than the typical git-dev, git-user, git-admin,\ngit-x etc.?  I don't plan on hacking on Git so having the Dev mail in\nthe list is just noise for me.  I'm sure other people think that too.\nJust wondering.\n\n-- \n\nIn Christ,\n\nTimmy V.\n\nhttp://burningones.com/\nhttp://five.sentenc.es/ - Spend less time on e-mail\n"},{"id":"96426","messageId":"804p1xgjzv.fsf@tiny.isode.net","threadId":"16444","inReplyTo":"c115fd3c0811240828y61e7bfecka1cacdd37865a4e8@mail.gmail.com","subject":"Re: Hello All and Seeking Information","fromName":"Bruce Stephens","fromEmail":"bruce.stephens@isode.com","sentAt":"2008-11-24T16:35:16Z","receivedAt":"2008-11-24T16:35:16Z","isPatch":false,"sender":{"key":"bruce.stephens@isode.com","avatar":null},"body":"\"Tim Visher\" <tim.visher@gmail.com> writes:\n\n[...]\n\n> However, there are some issues that I can't wrap my head around,\n> such as how you can guarantee that all developers are working on the\n> same code-base without a central repo.\n\nYou can't.  That's the point.\n\nIf developers wish to use a central repository and always to work\nbased on that, then they can.  But the tool doesn't enforce that.\n<http://koweycode.blogspot.com/2008/11/iterative-commiting.html>\ndescribes a common (IME) benefit.\n\n[...]\n"},{"id":"96427","messageId":"46d6db660811240839n76d96887w7c497851f04c8658@mail.gmail.com","threadId":"16444","inReplyTo":"c115fd3c0811240828y61e7bfecka1cacdd37865a4e8@mail.gmail.com","subject":"Re: Hello All and Seeking Information","fromName":"Christian MICHON","fromEmail":"christian.michon@gmail.com","sentAt":"2008-11-24T16:39:44Z","receivedAt":"2008-11-24T16:39:44Z","isPatch":false,"sender":{"key":"christian.michon@gmail.com","avatar":"https://gravatar.com/avatar/8a7c327b21187fbcab5c27640a49450eec72e0355dc292501197f27a5a744ec4?d=mp&s=160"},"body":"On Mon, Nov 24, 2008 at 5:28 PM, Tim Visher <tim.visher@gmail.com> wrote:\n> Hello Everyone,\n>\n> I'm new to the list so I figured I'd introduce myself instead of just\n> wall-flowering... \"Hello\"... :)\n>\n> Anyway, I really like a lot of the concepts found in Git and the\n> reported power and flexibility of it are very intriguing.  However,\n> there are some issues that I can't wrap my head around, such as how\n> you can guarantee that all developers are working on the same\n> code-base without a central repo.  I would classify a lot of my issues\n> as paradigm rather than technically related. I understand a lot of\n> Git's underpinnings and the basic usage of it, I just can't wrap my\n> head around the higher-order parts of it.\n>\n> I've done some Googling and I can't find a good 'Introduction to\n> Distributed SCM Concepts for Centralized SCM Developers' article yet.\n> Ideally, this would be an article all about the high-level thought\n> processes that go into utilizing Distributed SCM in a team environment\n> where having a single canonical representation of your project that\n> all developers are working off of is important.\n>\n\nhttp://git.or.cz/gitwiki/LinusTalk200705Transcript\n\nbut the video is obviously more fun\n\nhttp://www.youtube.com/watch?v=4XpnKHJAok8\n\n-- \nChristian\n--\nhttp://detaolb.sourceforge.net/, a linux distribution for Qemu with Git inside !\n"},{"id":"96431","messageId":"m3wsetj87v.fsf@localhost.localdomain","threadId":"16444","inReplyTo":"c115fd3c0811240828y61e7bfecka1cacdd37865a4e8@mail.gmail.com","subject":"Re: Hello All and Seeking Information","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-11-24T18:22:03Z","receivedAt":"2008-11-24T18:22:03Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"\"Tim Visher\" <tim.visher@gmail.com> writes:\n\n> Hello Everyone,\n> \n> I'm new to the list so I figured I'd introduce myself instead of just\n> wall-flowering... \"Hello\"... :)\n> \n> Anyway, I really like a lot of the concepts found in Git and the\n> reported power and flexibility of it are very intriguing.  However,\n> there are some issues that I can't wrap my head around, such as how\n> you can guarantee that all developers are working on the same\n> code-base without a central repo.  I would classify a lot of my issues\n> as paradigm rather than technically related. I understand a lot of\n> Git's underpinnings and the basic usage of it, I just can't wrap my\n> head around the higher-order parts of it.\n\nThe idea behind Git repository format is content adressed filesystem,\nwhich if I remember correctly was taken from Monotone (well, not\naddressed by actual content, but SHA-1 cryptographic hash of\ncontent+type). So if there is 134b8687c59e65ce06562ffb0e8be63ab7aa618b\nobject in some repository, it is the same object in all repositories,\neven if it was created independently. That is one thing.\n\nThe other thing is that typical workflow calls for downloading changes\n(fetching in git jargon) from some 'upstream' repository, the official\nrepository (one of official repositories) with code you are supposed\nto base your changes upon.\n\nAlso easy to create branches, and very good support for merging (and\nrebasing) makes it possible and easy to join (merge) lines of\ndevelopment done independently from some older point of history. So\nthat even if you are not working on the same code-base I can\nincorporate your changes, and you can incorporate mine.\n\n> \n> I've done some Googling and I can't find a good 'Introduction to\n> Distributed SCM Concepts for Centralized SCM Developers' article yet.\n> Ideally, this would be an article all about the high-level thought\n> processes that go into utilizing Distributed SCM in a team environment\n> where having a single canonical representation of your project that\n> all developers are working off of is important.\n\nSee http://git.or.cz/gitwiki/GitDocumentation (and also main page of\nthis git wiki, Documentation mentioned on git homepage\n(http://git.or.cz) including \"Git User's Manual\", and \"The Git\nCommunity Book\" at http://book.git-scm.com\n\n> P.S. Anyone want to tell me why the Git Mailing List was set-up\n> monolithically rather than the typical git-dev, git-user, git-admin,\n> git-x etc.?  I don't plan on hacking on Git so having the Dev mail in\n> the list is just noise for me.  I'm sure other people think that too.\n> Just wondering.\n\nBecause this Git is not so large project, and traffic on git mailing\nlist is not so large to support split? IIRC there was \"Git for Human\nBeings\" aka git-users Google Group, but it doesn't seem to be there\nany more.  Also having common mailing list allow for better contact\nbetween developers and git users (which hopefully would allow us to\navoid comon pitfalls with 'developers for developers' approach).\n\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"96463","messageId":"492BAFE1.5010904@pcharlan.com","threadId":"16444","inReplyTo":"c115fd3c0811240828y61e7bfecka1cacdd37865a4e8@mail.gmail.com","subject":"Re: Hello All and Seeking Information","fromName":"Pete Harlan","fromEmail":"pgit@pcharlan.com","sentAt":"2008-11-25T07:57:21Z","receivedAt":"2008-11-25T07:57:21Z","isPatch":false,"sender":{"key":"pgit@pcharlan.com","avatar":null},"body":"Tim Visher wrote:\n> there are some issues that I can't wrap my head around, such as how\n> you can guarantee that all developers are working on the same\n> code-base without a central repo.\n\nYou can have a central repo that represents the official lines of\ndevelopment (branches, but \"official\" branches), and each developer\nhas local copies of those branches so they can compare their own work\nagainst them.\n\nIf you don't have a central repo, then the developers can keep local\ncopies of other developers' branches when they're interested in them,\nand compare their work against those.\n\nUsing the git project as an example, when you clone from\ngit://git.kernel.org/pub/scm/git/git.git you will find \"remote\nbranches\" origin/master, origin/maint, etc.  They're stored locally in\nyour repo; the name \"remote\" only refers to the fact that at one time\n(when you last cloned or fetched) they corresponded to branches in the\norigin repo.  You can list your copies of these branches with \"git\nbranch -r\".  You can freshen them to agree with the origin with \"git\nfetch origin\".\n\nYour local branches (\"local\" referring to the fact that they exist\n_only_ locally), listed by \"git branch\", are what you develop on.\n\nAfter you do \"git fetch\", you can compare your local branches against\nyour copies of the remote branches to see if the remote repo has new\nwork you haven't yet incorporated into your local branches.  You can\nalso compare against them to see if you have work they don't.\n\nSo each developer can compare what they have against what others have,\nand keep things in sync as much as they wish to (and no more), fairly\neasily.\n\n--Pete\n"}]}