neowit / vim-force.com

Vim plugin for force.com
113 stars 25 forks source link

Deploy All Mode #3

Closed cwarden closed 12 years ago

cwarden commented 12 years ago

An "all" mode for apex#MakeProject would be useful, for example, when deploying a project to a new org.

neowit commented 12 years ago

Do you mean deploying all files under current project as opposed to deploying only the changed ones?

If we are deploying the project to a new org then how do we specify the target SFDC Org to deploy to?

Do you have a step-by-step process of such deployment in mind? From user's point of view.

cwarden commented 12 years ago

Yes, all files rather than just the changed ones.

I keep the directory that contains my ant property files in git with separate branches for different types of orgs. So I have a dev branch that contains my credentials for a dev org, a package branch with the credentials for a dev org in which a managed package is packaged, etc.

I was setting up a new dev org, and I had to run ant directly to deploy everything. It would have been nice to be able to simply call :ApexDeployAll from within vim.

A more typical example would be developing in a dev org, deploying multiple times, then switching to a packaging org (or a sandbox or production if you're not developing a managed package), and deploying everything since none of the metadata files have changed in the filesystem since your last deploy, but they've changed since you last deployed to this org.

neowit commented 12 years ago

I see. Thanks for the details. Will look into this (unless you want to have a go yourselves of course).

Meanwhile - in order to mark some/all files in the project to be picked up by ApexDeploy you could just run touch on all *-meta.xml files. ApexDeploy just checks modification date of "-meta.xml" and its code counterpart (.cls, .trigger, etc) to establish if that file is "modified".

cwarden commented 12 years ago

Touching all of the non--meta.xml files is actually what I did first, and that reminds of another problem. I want to deploy components that don't have -meta.xml counterparts: objects, workflows, etc. The all mode should deploy everything within the src directory.

neowit commented 12 years ago

There is now :ApexDeployAll command available Do not expect too much from it though. There are some limitations imposed by Salesforce.com Metadata API. For details see :help ApexDeployAll

cwarden commented 12 years ago

Thanks!