Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do you manage 3rd person git repositories in your project? (ex. Twig/Assetic/..) [closed]

I've made a personal light framework in PHP which matches my needs for a framework. I'm using different 3rd party libraries, like SwiftMailer, Twig, Assetic, Facebook PHP api, ...

How do you manage these sources codes from 3rd party libraries? Do you add it as a submodule into your project, and just do a pull to get the latest version? Or do you just copy the code into your project dir and do the updates yourself?

Most code repositories are structured like this:

  • docs
  • src
  • tests

So in my framework dir it looks like this, and us the vendor dirs as submodule from a remote project:

  • docs
  • src
    • vendor
      • Assetic (clone of remote repo)
      • src
      • ...
  • tests

Is this the way to go? Or how do you suggest doing this? During a capistrano deploy, all the submodule repositories will be pulled from the remote servers.

Edit: I must say that I use the framework as submodule in other projects. So the framework is a submodule in a project, and the framework itself also has submodules in it..

Thanks!

like image 610
jayv Avatar asked Jun 27 '11 08:06

jayv


1 Answers

I generally use a vendor folder, either top-level or under src or lib that holds the submodules, and use the the --recurse-submodules option when pulling, and --recursive with git submodule update and git submodule status. I think capistrano can handle this use case decently, but I'm not familiar enough with it to know for sure.

like image 67
jdd Avatar answered Oct 19 '22 03:10

jdd