How do i texture a long cylinder without so much stretch?
I find that if you're UV-unwrapping the mesh, you need to make sure to apply the scale on the mesh before unwrapping. Do this by selecting the mesh and pressing CTRL+A, then click "Scale" on the popup menu that appears. When that's done, re-unwrap the mesh:

 

Note: you can also apply the Rotation and Location if needed, and it's generally a good idea to apply Location, Rotation, and Scale on  your mesh before doing things like UV unwrapping, texturing in general, physics effects, particles, etc.