Have you ever successfully uploaded using the Reset button and a common USB serial adapter?
I'm struggling to get a small project working this weekend, without waiting a week or two to order another part.
Kindof, and it was a painful experience. We used the LeoStick, a Leonardo clone. Because of the way the Leonardo is made, there can be problems with that (it has 1 usb PID/VID when it first boots, switching to a unique one every time it is running your sketch) On a mates computer running XP it was nothing but painful. (It has built in usb->serial, so I didn't have to contend with another module) The drivers only let you communicate with the PID/VID that is present before your own sketch starts up. So, you had to time the delivery of new code with the couple of seconds window between power-up and user-sketch being run.
We'd hit upload, wait about 6 seconds, since that was how long it took to get to about 1.5 seconds before the upload began. Then we'd hit reset and see if we'd reset it at the right time. After a while I got pretty good, but it was the whole 'compile before upload' idea that seemed to make it harder than it needed to be.
With a different mechanism to upload the sketch, I reckon it would have been miles easier. You may consider having a look for Code Blocks Arduino Edition, and more particularly for Arduino Builder by the same author - it's in the same package. You can have the sketch compiled into .HEX files which are then ready to upload the instant you click the go button. That could very well be easier, since it's just hit the Arduino's reset then hit upload.
For what it's worth - the IDE didn't indicate a successful upload in that scenario, the only way I could tell it had been succesful was by changing the timing in the blink sketch and watching for a change of blink rate.