I have a couple hundred Arduino code projects in my Sketchbook at the moment. Included are some actual prototypes that I use, and many are starter scripts I've worked up for different components or code techniques. That has morphed into a lot of similar projects with slightly different names/purposes. See screenshot.
I'm very familiar with SVN, which I use at work, and would happily go about creating branches and tags. But, I don't have a SVN server (and don't feel like hosting one locally) so that leaves me with other options. GitHub is an option, but that's public. I'm OK the code being public, but I don't think the internet is OK with being saturated by a bunch of half-baked, undocumented projects. BitBucket allows some free private ones, but I haven't explored that much.
Aside for branching, I'd also like it for the simple purpose of reverting code.
Do you have any particular version control systems you use for managing your incomplete projects that you'd recommend?
(As you can see in the screenshot below, I go for the "Save as" technique, getting more specific each time... It's getting overwhelming.)
When I use the "Save As..." technique, I append the date in the form of _yyyymmdd.
However, mostly I use git and GitHub. As you know, GitHub allows svn as an option. GitHub is public if a free account is used. If you pay, you can go private. GitHub seems to have a lot of "...half-baked, undocumented projects" so a few more should not matter.
I agree with Delta_G, as long as you clearly separate your test/unfinished/half baked code from what you really want to publish (aka, hand to people to use) I don't see a problem. But as Robin2 stated, you can use Git local only if you want. Just never sync it.
But a thing I notice, why didn't you just use folders? Like, all the NeoPixel-Flicker projects can go in a folder. Or heck, even all Neopixel projects in a folder with Flicker as subfolder etc. Already makes it more clear I would say.
keith204:
I'm very familiar with SVN, which I use at work, and would happily go about creating branches and tags. But, I don't have a SVN server (and don't feel like hosting one locally)
It is very easy to install an SVN server and client on Windows. Google for VisualSVN.
keith204:
I have a couple hundred Arduino code projects in my Sketchbook at the moment. Included are some actual prototypes that I use, and many are starter scripts I've worked up for different components or code techniques. That has morphed into a lot of similar projects with slightly different names/purposes. See screenshot.
I'm very familiar with SVN, which I use at work, and would happily go about creating branches and tags. But, I don't have a SVN server (and don't feel like hosting one locally) so that leaves me with other options. GitHub is an option, but that's public. I'm OK the code being public, but I don't think the internet is OK with being saturated by a bunch of half-baked, undocumented projects. BitBucket allows some free private ones, but I haven't explored that much.
Aside for branching, I'd also like it for the simple purpose of reverting code.
Do you have any particular version control systems you use for managing your incomplete projects that you'd recommend?
(As you can see in the screenshot below, I go for the "Save as" technique, getting more specific each time... It's getting overwhelming.)
As an OF I still prefer KISS - do as they did in Chicago long time ago - vote ( SAVE) early and often.
I keep project in one subdirectory 'saving as" and just appending numbers to *.ino file. Couple times a day as necessary.
Sometime I add "_comment" - Project_WEB_CAM_v55_UART_OK
OS keeps track of date of creation for me.
I would not put my (messy) code on net for any reasons. I prefer local RAID as archive.
Jim
If you choose to stay within arduino IDE, you can do a couple of things to keep some order:
Use "save as" (previously mentioned). My personal preference is a version number system e.g. :
NTP-ESP-Seven-Segment-clock-ver-0.71
This text is also written to the serial console by the sketch.
Use sub folders for projects instead of storing all the sketches at the top level e.g.:
NeoPixel-Stuff
I also have a folder marked "prod" (short for production) where all code is stored for devices which are in use about the house.
Wow, a lot has been posted while I was away. Your posts have been quite insightful.
Re: Eclipse & Sloeber -
Wow, I installed it and it looks incredible. I have not tried any features, but I see certain ones exist that would be handy. Namely templates, the outline, code completions featuring method signatures, built-in uploading, and the project explorer view. I feel very comfortable in this environment. At work, I use Visual Studio for C#, so Arduino IDE has always felt a bit like notepad with a toolbar (great for beginners). It may be a couple weeks before I go back to doing much with Arduino, but I'm eager to give this a try.
Re: local SVN/GIT - Great idea. I like that.
Re: subfolders - I have several subfolders, which does work well for things that are component specific, so I will continue with that along with a version control setup.
Re: cat videos and stupid internet stuff - Since I have been frustrated many times by coming across GitHub repos that appeared to be great, but were mere fecal matter, I will move forward with a clear conscience and dump my partially processed code in a private place.