PHP-app deployment tool from GitHub or Eclipse / EGit (FTP?) - eclipse

Historically I was using Dreamweaver to edit my PHP-app, at which time I was using the built in FTP-function to upload to the webhost. It was super easy. With the push of a button (Ctrl + U) I could easily upload the file I had been editing to the correct folder at the webhost (after making some initial easy settings in Dreamweaver).
But now I am trying to get into the version control system mentality instead and I have started using EGit in Eclipse and I have successfully synced my project to GitHub and pushed my commits. I guess I use GitHub mostly for backup since I am the only one editing my app.
Now, as I mentioned before, deployment of my files was so easy in Dreamweaver, and easy to manage, I had total control of which files I was updating and total visibility. But now, deploying my project from Eclipse or GitHub doesn't look as easy. I have been trying DeployHQ.com to deploy my latest commits to GitHub, but found that to be a little unmanageable and not so easy (maybe I didn't try hard enough), then I tried Remote System Explorer in Eclipse, also not so easy and manageable.
I am looking for a tool or method to deploy my PHP app to my webhost file system from either Eclipse or GitHub that has been purposely built to be easy easy and easy and intuitive. Does such a tool exist? I am almost thinking about reverting back to my old Dreamweaver FTP-client just because I can't be bothered getting something like DeployHQ to work.
I guess it goes without saying that I am only coding part-time, so please be nice.

FTPloy offers a similar service that I used to use back when I coded PHP. It was easy to setup and integrates directly with GitHub or BitBucket.

Related

Sample work-flow when using PhpStorm & GitHub on a Remote Server?

This is my current work-flow:
I have a web-server on my development machine (on the same network). It houses my project & I use Notepad++ to make live-edits to the code. I make code edits from my laptop, refresh the page (which I am accessing thru hostname on my laptop) to see my PHP/HTML edits & when I'm satisfied, I merge to the master branch on GitHub.
In an effort to become more familiar with IDEs for PHP, and have some great debugging capabilities, I want to start using PhpStorm.
I thought of moving the web-server & GitHub Desktop to my laptop and just leaving the databases on the development machine, but that creates other issues.
My work-flow might not be modern. Could you help me understand how a new & similar work-flow could potentially be setup with PhpStorm in the mix? How have you seen it done?
I'm using Laravel which has a ton of files, so constant full-syncs instead of deltas would be too much time wasted.

Domino 8.5.3 - Create an organization extension library / codestore

This is a project I've been working on off and on for months and I feel like I'm pretty close, but I just can't seem to get past the final hurdle.
The goal is to develop an organization extension library that contains both internal and 3rd party code that we frequently rely on.
History
As a test project, I started with Apache Poi because that is already in wide use in our environment. I have a plug-in and feature built just from the Poi .jars that allows me to build our current Poi applications as long as I add the plug-in (from my workspace) to my build path. The apps work on the servers because we have already distributed the Poi .jars by manually copying them.
The next step is taking that plug-in and getting it into an updatesite so that all of the servers and developers can synchronize on one version. I found and followed these two excellent blog articles (that I wish existed when I started this project):
http://www.dalsgaard-data.eu/blog/wrap-an-existing-jar-file-into-a-plug-in/
http://www.dalsgaard-data.eu/blog/deploy-an-eclipse-update-site-to-ibm-domino-and-ibm-domino-designer/
With the caveat that the articles are written for Domino 9 and we are running 8.5.3 here, but that only matters in the last (installation) step.
Current
This brings us to the problem. All of the above seems to have worked great up to a point. I can install my feature to my designer client from the eclipse update site and it works great. However, the install is failing when I import that into our updatesite.nsf database. This means that while the developers can all install from the updatesite if I put it on a network drive, that doesn't deploy updates to our servers.
The problem is that when I try to install from the .nsf update site, the Eclipse Updater just hangs. I've let it go for well over an hour and eventually Notes becomes completely unresponsive.
So the question is, is there anything I might have done wrong, either in the development of the plug-in or server configuration that might be causing this issue?
Additional Info
I'm looking at the osgi console and that is largely unhelpful. I am getting the following errors as I'm trying to install: SEVERE Could not access digest on the site: no protocol: 0/5B004DDD5E38F3FF85257CAF004C72C7/$file/digest.zip ::class.method=unknown ::thread=Worker-7 ::loggername=org.eclipse.update.core
I could generate dumps if that would be useful.
Security is also locked down fairly tight here. It could be a security issue - is there a way to troubleshoot that? Once I get to the hang I'm just stuck guessing.
This has been edited for clarity and to update information
I know that this is post is over 5 years ago but...
for those that find this and are trying to resolve the error
SEVERE Could not access digest on the site: no protocol: "
is due to the update site project not having the URL of the Domino updatesite.nsf not being added to the Archives tab of the site.xml.
I found the updatesite.nsf also needs to be anonymously accessible as no credentials are prompted/passed through to the Domino server hosting the updatesite.nsf database (at least from DDE), YMMV from eclipse. So if Anonymous connections are blocked on the Domino server you will be out of luck.
To develop a plug-in you really want to have 3 projects:
the plug-in
the feature
the update site
Of course a feature can contain more than one plug-in (and probably should) and a update site can contain more than one feature (and probably should). Once you have an update site project it features a handy button "build all" that makes sure plug-in, feature and update-site get compiled in one go. And that button is what you really want.
You can point using a setting in your Domino Designer (or local Domino server) to the feature directory. Add a plain text .link file to framework/rcp/eclipse/links, that contains the path to your install site - it then picks up the features and plug-ins from there. After a build you would need to restart designer/server to activate the updated feature.
For the Domino server the approach using an updatesite.nsf and the respective notes.ini setting makes the most sense (to me). http restart required. Lazy people script the whole thing.
I still don't have a great answer for this, but I believe the issue is related to the environment here. I don't have the authority to change the environment, even if I were able to conclusively demonstrate it is the cause of this problem, so it is a moot point. All I can say is that at least one administrator computer had no issue installing from the update site.
For me, the solution for distributing the update site is to put it on a network drive and have everyone install it from there. The server has no problem using it from the updatesite.nsf.

subversioning ipad app project

I am currently looking at setting up an Ipad app project into subversion.
Ive had a lot of experience with windows based development and .net. With this we have just created a repository in a network folder (by just right clicking -> TortiseSVN -> create repository) , than all we have done is our developers have checked out from this directory.
How do we go about doing this in xcode. I know subversion is integrated with xcode and I am pretty confident of doing everything (from tutorials) except for the creation of the repository.
Just wondering how we go about creating a repository in a folder based up on network folder?
Thanks in advance
Google for the svn book.
It should have everything you need to know with the exception of Xcode specifics.
Honestly, you probably don't want to create a repository on someone's development machine, especially if you are giving people network access.
You should setup an actual SVN server or use an online service.
Here is a question posted in 2009: SVN server for the Mac that's easy to set up?
Here is the "official" Ubuntu guide if you chose to run the SVN server on top of Ubuntu (which is my recommendation). Google for "install svn ubuntu".
Sorry I can't post multiple links yet.
Not 100% sure since I mainly use the terminal for svn operations on mac but
if you go in XCode to the scm you can configure the repositories for your project
once that is set up (I guess you know how to do this form your question), you simply you can go scm->repositories
select the one you want and you can then modify it

Eclipse FTP "Team Plugin"

It seems to me from the following page
http://www.eclipse.org/eclipse/platform-team/target.php
and other pages like it. that there has been a robust, mature, properly integrated (and seemingly very smart) way to upload and synchronize files from an eclipse workspace with an FTP site for four to six years already.
It seams from that page and similar pages around the web that "The WebDAV and FTP plugins are built as part of the platform build" which to me in plain english would mean that if you have the core eclipse files you should already have it.
This is obviously not the case. you dont even have the plugins required to make basic ftp access unless you install it from a repository.
Not only is it not installed. it is not available from the default plugin repositries set up when you download eclipse.
Not only that but I could not even find the link to the repository anywhere.
RSE - which seams like a library out of the nineties with such limited functionality that shell clients writen for windows 3.1 could do more in less steps - has its plugin repository url posted in many places. but the team plugin has only links to CVS repositories of the source at best. even most of those are broken.
In conclusion.
Does anyone know how to install the "team" ftp client so that I can synchronize my content with FTP?
Well, here is an sftp plugin on sourceforge.
It is only about internal plugin defining a basic container for any ftp or webdav-based application.
You can see, when looking at:
the source of eclipse.ftp, that this is mainly an exception, some interfaces and a basic FTP container.
the sources of the target.ftp plugin, that that feature is here from more than 4 years, untouched, with basic functions only.
Only a more advance client like eclipse.team.ftp defines a client, but not on eclipse.team.ftp no more, since this is now the DSDP Target Management component which actually has developed a more advanced FTP/Webdav layer. It took over since 2006.
Ok, time for me to answer my own question.
No RSE does not do what org.eclipse.team.ftp was able to accomplish five years ago. Somehow that functionality never made it in. I have no idea why they dropped a perfectly logical solution in favor of the new backwards methodology.
However, visiting the site that #bmargulies recommended I realized that Jcraft still hosts the original FTP and WebDav Service for Team Services (upon which their sftp service is built)
So you can just point your eclipse install dialog at http://eclipse.jcraft.com/ and install the original plugin.
Good luck
I am also looking for this. Any solution for you yet?
This one also has been left dead and then excluded. :((
Team Synchronization on top of RSE
I guess there are still not enough Eclipse developers interested in it. Especially if one continue to see not only dead projects but even succesfull ftp-sync projects being shut out.
Really sad.

Version control integration with eclipse

I'm looking for a version control system just for me on my windows computer to integrate into eclipse. I was thinking to use Mercurial instead of Subversion, but I'm having doubts about the mercurial eclipse plugin. Any input on this that you can help me with?
Is it worth it to have a version control system when you're working alone, how much is it going to complicate matters? I don't think I need a remote repository since it's just for me. And what is known to work well in eclipse?
Is it worth having a version control system for just yourself ? Absolutely. Why ?
You can retrieve old versions of code - for reference, to revert changes.
you can branch and tag to create different versions and checkpoint for releases.
Your continuous integration system (you do have one, don't you?) can tag successful builds, allowing you to identify particular intermediate builds.
You can record in the logs why you've changed stuff (as opposed to what you've changed), and meta-information surrounding those changes.
So version control isn't used to manage multiple developers, but rather to manage the codebase itself.
What works well in Eclipse ? I can vouch for Subversion. I've used that successfully for a couple of years. I'm not sure I'd use a distributed system like Mercurial, unless I was in the habit of (say) developing on a laptop on the move, and on a desktop at home.
I have used the Subclipse plugin for SVN and it worked like a charm. In regards to whether or not you need a version control system while working alone, it's still a good idea. It will save your version history and allow for easy rollbacks. Also, if you ever bring on another person to the project it will be easy to get them up and going.
Is it worth it to have a version control system when you're working alone
Yes of course, you will always run in cases like, the application was running yesterday but i dont know what i did!
how much is it going to complicate matters?
It will not complicate anything, you will just need to spend half an hour at the beginning to set it, then committing,branching, uploading, sharing will all be one click away in Eclipse.
I don't think I need a remote repository since it's just for me.
I work alone as well, but you never know, if you might work on different sites it would be good to have all your work in the cloud, sometimes you run in cases like you want to share a project with a friend and whats better than SVN in that case.
And what is known to work well in eclipse?
I use Subversion, inside Eclipse and TortoiseSVN in the explorer.
If you want to setup your own SVN Server, (with the benefit of not needing to upload/download from internet each time) check here:
Create SVN Server on Windows
Create SVN Server on Mac
It IS important to have a SCM system even when working alone.
I'd suggest creating a project in code.google.com or sf.net, (unless of course you don't want an open source license).
Eclipse has built-in "Local history", you can check if it is sufficient for your needs. Otherwise you can simply install an SVN server from Collab.net, and use it on localhost with Subclipse
There is also a git plugin for eclipse. only problem is merge not being integrated yet. but is planned for the near future.
egit
The Mercurial plugin for Eclipse seems to work fine. I don't think it has all of the features that Subclipse has for Subversion though.
If you are working alone on a project though, you need to ask yourself why you are using a distributed version control system. For a project by yourself, Subversion works great. I use subversion and the eclipse project for projects I work on by myself. It gives you the history and rollback capabilities even with a single person. It is nice sometimes to be able to see what you did before that you might have deleted.
In a team environment though, the Mercurial plugin for Eclipse works fine.