Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

taking a leap to Source Control


Go to End


5 Posts   1791 Views

Avatar
DsX

Community Member, 178 Posts

6 March 2011 at 10:32am

OK, I have a number of silverstripe projects on the go, and they are on going.
I am a single developer, and am starting to feel the need for source control, since I am back and forth between these projects.

I don't know where to start?
Really.. this is totally new to me. I tried to go through a online tutorial and blahh.. that didn't work.

One thing is that I have checked-out 'most' modules in my sites by SVN (tortiouse), I have 1 or 2 that are checked out via Git... my silverstripe core files are just copies extracted from the download.

Can anyone lead me down this road? Do I need to change the way I have the files setup on my machine now (can I version control folders that are under version control)? Should I use an online repository or local? What is the suggested way to setup so that the core silverstripe folders (eg cms, sapphire) can just be Updated via SVN?

Should only MY folders be source controlled?

Once sourced controlled what is the preferred method of launching an update to server?

Its the complex nature of the system I think that has me messed up. My files, SVN folders, Git folders etc...

Any help would be greatly appreciated.. this is the next big leap for me in my silverstripe development.

Avatar
Willr

Forum Moderator, 5523 Posts

11 March 2011 at 6:12pm

Hi DsX,

The method we recommend currently is to use Piston to manage Sapphire, CMS and the modules, this is especially useful if you only need the modules for read only uses (http://piston.rubyforge.org/)

Do I need to change the way I have the files setup on my machine now (can I version control folders that are under version control)?

Well you *could* but it is a bad idea. Piston helps solve this. The files will be stored in your version control repository but a link to the main repo will exist, allowing you to update at any point.

Should I use an online repository or local?

Online is much more useful, though if you're not 'sharing' then could be less of a factor. Storing your repo online can also act as another backup for you which is always good.

What is the suggested way to setup so that the core silverstripe folders (eg cms, sapphire) can just be Updated via SVN?

Like I said, using piston is our recommended way. If you're like simon_w you won't like git and prefer svn:externals (google for tutorial) you can use the mirror available at http://svn.simon.geek.nz/silverstripe/ to link to modules + core.

Once sourced controlled what is the preferred method of launching an update to server?

So many ways to do this, if you want a simple tool google for "<your version control system> post commit deploy". That can set you up so when you 'commit' (or 'push' something in git) it will deploy to your server. Capistrano is quite a useful tool for managing deploys (https://github.com/capistrano/capistrano/wiki) but for simple sites a post commit (or post push) hook is good enough.

Avatar
DsX

Community Member, 178 Posts

7 April 2011 at 4:50am

Again, thanks for the reply.
I have been having trouble with this. I will give it another go soon, I know once its working for me I will be much happier with my environment.

Avatar
markh

Community Member, 1 Post

7 December 2011 at 6:25pm

Hi DsX, just wondering how you went with setting up your source control system. I'm looking at doing something similar - I want to develop on a number of different machines, all at different locations - and then be able to run test on a remote site.

This looks like being a pretty tough problem...

Thanks
Mark

Avatar
digibrains

Community Member, 130 Posts

9 December 2011 at 7:12am

Hi, Mark,

In short...my advice is to just use git. If you're not afraid to 'roll-your-own' all you need is a remote server with ssh capabilities and git installed.

I'm working on 20 or so sites at any given time and like the original poster I was facing the same issues. With git I can create a repository on my remote server and access that repository from any location(as long as git is installed on the local machine).

When I first set up git I had never worked with a versioning tool before. It took me a few days to research, and afternoon of installing git and setting up my environment on my remote server and a few weeks of learning the finer points of using git. That said, I'm not an expert at git. Really more of a novice that's learned a few tricks because I've had to.

If that sounds like a hassle, just fork over a few bucks and get set up with a github account.

Hope that helps,
Chris.b