18

Do Salesforce developers use Git? If they do, how does their development cycle look?

How do they import projects? Do they do that manually like "create zip - deploy using Ant"? Or maybe there is a closer connection between Salesforce and GitHub, for example?

For example, I want deploy a project from GitHub. Some installed packages are used in it and I don't know which exactly. I can see only namespaces. How can I solve that? And generally what steps should I perform to accomplish deployment?

  • 2
    I feel like you have a lot of questions here... and might need to narrow it down some. – dphil Jan 13 '15 at 14:38
  • 1
    Have you tried reading the documentation on Git? – crmprogdev Jan 13 '15 at 15:14
10

There are 3 sets of questions. I am not sure if I can answer the last one.

  1. Salesforce developers do use Git, either through in-house repositories or online repository hosts such as Github, Bitbucket etc. The following blog post goes into details of a typical development cycle: http://blog.deadlypenguin.com/blog/2014/07/21/using-git-with-salesforce-and-distributed-teams/

  2. Projects that develop for the force.com platform often use a combination of Force.com Migration Tool (FMT) or Eclipse and Ant build scripts to automate fetching from Git branches and deploy to target environments. One could also set up a continuous integration (CI) infrastructure, especially if the project is structured as short sprints. Here is an excellent article on how to setup Jenkins as a CI provider for Salesforce: https://developer.salesforce.com/blogs/developer-relations/2013/03/setting-up-jenkins-for-force-com-continuous-integration.html

  • Thank you. Actually the third question was the main problem – Liudmila Likhovid Jan 13 '15 at 19:35
  • Did you solve it yet? Is it a public github repository? Do the namespaces indicate to any managed package? – Gnana Jan 15 '15 at 10:22
  • Yes, the namespaces indicates to managed packages and I solved it, but I don't like the way how can I find out on what packages it has dependencies. (I mean I have to search it and I didn't find a way to get know easily to which package refers the namespace) – Liudmila Likhovid Jan 15 '15 at 21:19
  • For those coming to this question in 2019 and later, Salesforce has just ended support for the Eclipse IDE. Instead, the current recommended approach is to use the Salesforce Extensions for Visual Studio Code. – Nick K9 Nov 7 '19 at 17:02
7

I presented two sessions at Dreamforce last year on the development and release workflow we've built at the Salesforce Foundation for our own development projects. We've released all the code (build scripts, automation scripts, etc) as open source with the intention of building a community of Salesforce developers facing similar challenges.

The best overview available is the video of the sessions themselves. The first is an overview of the whole process and the second is a more hands on demo of wrapping the process around an existing project in GitHub:

The challenge in using GitHub for Salesforce development is connecting the two. I'd argue that the most important thing to get right from the beginning is good build scripts that can automate the different types of deployments you'll need to do from GitHub to a Salesforce org.

You didn't specify if you are building managed packages or not so I'll give the caveat that our process is currently designed for use in managed package development.

As for your question about handling dependencies on other packages, that is something our process was built to handle. We have a single file in the root of the repository that specifies the namespace and version of each required packages. The build scripts use this file to automatically install the correct version of the packages as part of the build: https://github.com/SalesforceFoundation/Cumulus/blob/dev/version.properties

4

There is eclipse plugin for git. You can use that to interact with your git repo.

Other option is you can use command prompt to interact with git and Eclipse with SFDC. Here is great blog that tell you all the required steps to interact with git using command propmt.

On high level here are steps for you:

1) Fork the new brach and get the code in your work space
2) Add the Upstream origin to your local Git repository
3) Go into the Force.com IDE, create a new Force.com project.
4) When the system prompts you for which metadata components you want to install, select the none option
5) Now you will see the code in your work space which you branched from Master
6) In order to push your changes, you will need to first add them.
7) and the finally push them to Master.

2

As for me, I was trying to use Git plugin for Eclipse. I didn't like how it works. I ended up with separate folder where project is for Eclipse, and separate Git folder. After I finish implementation, I copy files from Eclipse's folder to Git's. Need to get changes from Git? Copy from Git's to Eclipse's and refresh project in Eclipse.

I don't deal with packages. They already in place after I create a project in Eclipse.

2

Yes you can use github integration in salesforce projects. If you are using Eclipse Force.com IDE, you can see more information for the eGit plugin. More Info: Git version control with Eclipse (EGit)

The plugin can be used for both deployment to git as well as fetching from a remote branch. Refer the provided link

1

We have apps like AutoRABIT in appexchange which does give automatic support to version control. i.e. Automatically fetches changes from salesforce and commits to version control(Git,SVN etc..) The following are the sample screenshots from this app.

enter image description here

Thanks,

Naveen.

0

You can refer this blog article as well to understand how we can use Salesforce developement with Git using Eclipse plugin.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.