[git-users] Re: Git Puzzle: Managing multiple websites based on the same code

2013-06-23 Thread Dyske Suematsu
Thank you, Marcel and Sam,

Sorry for the late response. I've been busy studying Git!

I did end up with a similar solution to what you guys suggested, and it 
seems to be working so far. I realized that there was no real 
need/advantage to using Github's Fork button when using private repos and 
for our own projects. So, I simply copied the entire local repo and changed 
the URL to the remote repo in the local config file, and then push it up to 
a new/empty Github repo. So, each website has two repos (a local repo and a 
remote one on Github), and each local repo is connected to two repos on 
Github (one to the original official repo and the other is to its own 
repo). This way, I can propagate global changes from the official repo. 
With this set-up, we are able to share each website project with other team 
members.

This setup is definitely better than my SVN setup; it's more flexible. I'm 
surprised that Github doesn't allow you to fork your own project. One of 
the strengths of Git is its ability to develop projects in parallel, and 
this certainly comes in handy when you have to develop multiple similar 
websites in parallel. I don't see why Github should discourage people from 
developing multiple projects of *their own* in parallel. Hopefully they'll 
remove that limitation in the future.

Thanks again,
Dyske

-- 
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/groups/opt_out.




[git-users] Re: Git Puzzle: Managing multiple websites based on the same code

2013-06-19 Thread childno͡ . de
Dear Dyske,

first of all: *That's not a git problem ;)*
branches are the same (but a little bit better) than in SVN.
Forks are repo copies.

handling forks might be in some cases more tricky than a classic branch 
if you want to backport bugs / features to existing clones.

*I think you should start using git with a single private repo using 
branches as like before!*
If you are familiar with git in some future, you might find a way to 
replicate and manage forks for your business needs but there are no tools 
that will help you here. Just have a look at the *git flow* paradigm and 
toolset.

Another suggestion, which is obvious but would not work, is to create a 
 branch for each website. This wouldn't work because the concept of branch 
 in Git is almost completely different from SVN.


that's wrong. the concept is likely the same. But yes, it's different how 
worse SVN allows bad users working with the SCM. git is much more cleaner 
and yes, in a single repository (clone) you just have a single checkout 
at a time. The really difference is for you how to manage them.
If you need different websites aside: just create a copy of your 
repository! You then have to update different repos if there are changes on 
the remote site.

so far, so good. But ... (if you intend not soly change your SCM but also 
your way how to work *using forks*)

I don't understand your gitHub problem while it is just a virtual problem:

   1. yes, gitHub (don't know since when) denies to fork on the same user 
   account via web-interface.
   2. you still might fork a repo manually but you'll loose the github 
   meta information that this is a fork. IE: you are not able to add push 
   requests to / between these repositories
  1. just clone your basesite
  2. create new repo called forkedsite via web but don't let gitHub 
  add files
  3. rename the remote origin (for basesite) to something like 
  parent and add the forksite remote as a new origin
  4. push your master to the new origin which now has the same tree-ish 
  as the parent
  5. (re)set uptracking branch if needed
  6. on updates on you parent repo: fetch --all  merge --no-ff 
  parent/bugfixBranch
   

Perhaps you might have a look at 
http://*bitbucket*.comhttp://bitbucket.comwhere

   - private repos are free unlimited up to 5 users
   - forking a repos of your own account is possible via web


As a git starter I don't know if *submodules *are very helpful yet for your 
purpose.
Please regard: That you need a real basic framework or components that 
you might update independently.

As a webDeveloper you should have a look at composerhttp://getcomposer.org
 or http://bower.io (http://yeoman.io/ will help too that bundles bower).
So your dependency management might be more code-based instead of strict 
versioned submodules with all it's gaps and traps.

With kind regards,
~Marcel

Am Dienstag, 18. Juni 2013 23:42:06 UTC+2 schrieb Dyske Suematsu:

 Hi All,

 I spent a whole week researching this and found no answer. So, I'm hoping 
 that someone here could help me. Here's my situation which I don't think is 
 so unique or strange.

 I have a generic website that I always use as my starting point to build 
 websites for all of my clients. Since each client's needs are different, I 
 end up editing different parts of the original code. (In other words, I 
 cannot separate and isolate files that all sites share in common.) As you 
 could imagine, without some sort of version control, it would be very 
 difficult to manage all the websites. The same fix/change would have to be 
 applied to all the sites individually.

 Currently I manage them with SVN. The original, generic site is in the 
 trunk and for each new client, I create a branch. If I make a change to 
 the trunk that needs to be propagated to all the branches/sites, I just run 
 svn merge to merge trunk into branches. I've been doing this for some years 
 and it's been working fine.

 Now, I would like to switch to Git because it's more powerful overall, but 
 I cannot figure out how I can manage these sites with Git. I searched this 
 Google Group and found someone who asked a similar question. I also asked 
 some of my programmer friends who have been using Git for a long time. They 
 all suggested to create a fork for each website. I thought it would work, 
 so I started implementing this but hit a wall. The issue is that on Github, 
 each fork requires a unique user. Say, I create the Official repo under 
 my Organization account. The URL would be:

 https://github.com/mycompany/basesite

 I then create a fork of this, and I would end up with:

 https://github.com/username/basesite

 Now, if I want to create another site, I would have to create a new user 
 because each fork is differentiated only by the user name. If I have to 
 create a new user for each website, eventually, I'll end up with a whole 
 bunch of user accounts to manage. And, since this must be a