[development] Workflow: staging server, source control, and the files directory

Brian Vuyk brian at brianvuyk.com
Fri Feb 18 16:41:18 UTC 2011

Ah, I misunderstood.

We take it on a case-by-case basis.

1. The imagecache directory is always excluded, as those are 
automagically regenerated anyways if they don't exist. We also exclude 
the 'js' and 'css' folders, as putting the aggregated js and css files 
in git is pointless.
2. We generally exclude the files directory altogether, and just put up 
with broken images on our local dev environments.
3. If absolutely necessary, we may rsync the files directory down to a 
dev environment periodically.

We have on occasion tried to keep small copies of the files directory in 
git, but we run into problems where nodes are deleted on the site, and 
Drupal deletes the corresponding file from the filesystem. However, 
having not been removed from git with 'git rm <filename>', someone has 
to push the filesystem changes with 'git add -u' to make the files 
directory sync properly. Also, we run into the odd issue where files 
uploaded by developers on thier local copies conflict with files 
uploaded on the staging server (test.txt, anyone?). This often needs 
sorting out...

All-in-all, it's extra work with little extra gain, other than prevent 
some broken images or file links on the non-canonical copies of the 
site, which can be fixed as needed by rsyncing the files directory down 
to the non-canonical development copies.

In short, I keep all the site code in git. For anything that's not code 
(or part of a code package, such as theme or module images), I try to 
leave out unless there is a good reason for inclusion.


On 11-02-18 11:18 AM, Andy Fowlston wrote:
> Brian wrote:
>>>    From a db point of view this sounds very similar to what we do. Could you elaborate on how you keep the files in sync?
>> Keep which files? The database exports?
> Sorry, no not the database at all: I'm wondering about any content related files in the files directory (I presume you use source control for everything outside the files directory?).
>> We look at it this way - staging is the canonical database. All config
>> is done on staging, never in the developer-specific local environments.
> Yeah, that's how we're doing things at the mo. I'd like to move more (ideally all) of the config to source files, but we're not there yet.
> Thanks,
> Andy
> . . . . . . .
> Andy Fowlston
> +44 (0)20 8747 5068
> andy at pedalo.co.uk
> Skype: andy.pedalo
> www.pedalo.co.uk
> This email is intended only for the above named addressee/s. This email may be confidential or legally privileged. If you have received this email and you are not a named addressee, you must not use, copy, distribute or disclose the email or any part of its contents or take any action in reliance on it. If you have received this email in error, please email the sender by replying to this message and delete it from your system. All reasonable precautions have been taken to ensure no viruses are present in this email.
> pedalo limited cannot accept responsibility for loss or damage arising from the use of this email or attachments and recommends that you subject these to your virus checking procedures prior to use. Any views or opinions presented are solely those of the author and not necessarily those of Pedalo Limited
> Please consider the environment before printing this email

More information about the development mailing list