Diddy - Source Control Question... SVN or Hg?
Monkey Forums/Monkey Programming/Diddy - Source Control Question... SVN or Hg?
| ||
Diddy currently uses Subversion (SVN) as its source control system. How many of you actually uses the SVN repository to check out the source code or do you just download the zip file? We are asking as we are thinking about moving from SVN to Mercurial (Hg). Would you have an issue if we moved to Hg? |
| ||
I personally prefer SVN - though only because I'm very familiar with it. I've never used Hg, so I can't really comment on that. I would imagine that more people are familiar with SVN |
| ||
Mercurial here |
| ||
How many of you actually uses the SVN repository to check out the source code or do you just download the zip file? I don't use diddy, but if I did I'd just download the zip file. Same for any other project having such options. Personally I see SVN, Hg, etc more for active developers of that project rather than for third party users. Just my opinion. |
| ||
Like impixi, as a user I'd never comsider downloading anything but the zip. |
| ||
zip here aswell |
| ||
and zip. |
| ||
i like what impixi said. use hg, if that's what the /developers/ prefer. if a user can't use it that way, he can download the [nightly|stable] zip. |
| ||
I use this tool to download the latest version of Diddy or any SVN: http://downloadsvn.codeplex.com/ Very handy tool if you don't want to install SVN. If you switch to Hg, I probably look for one that can grab Hg. No big problem. impixi is right, it is what the developers prefer. |
| ||
Anything but a zip-install for me! I prefer to be able to just click on Update/Pull and have the latest version directly into my modules folder in a second. On HG vs SVN I don't care that much as a user, but I think HG will make life easier for the developers of diddy. |
| ||
I'm currently happy with the svn, but I do have mercurial installed as well. I love just being able to right-click on the diddy folder and say 'update' so as long as that doesn't change, I'm good :) |
| ||
I installed TortoiseSVN just for Diddy so I'd personally be a bit miffed if you went and changed things now. Although: I love just being able to right-click on the diddy folder and say 'update' so as long as that doesn't change, I'm good :) +1 |
| ||
Alright, after some discussion with therevills, we've come up with a compromise. From now on (for a trial period at least) our development will be on Bitbucket. Any default branch commits will be cloned to the Google Code SVN repository, so you Subversiony people will actually have a less bleeding-edge version. You'll get mainline bugfixes, but any bugs in work-in-progress development won't break your code. I'll link out the Bitbucket repository once we've got it set up. We might periodically upload zip files to Google Code, but it's easy enough to grab a zip of the latest version from Bitbucket. You don't need Mercurial installed to do that: |
| ||
I always checkout the repo, i think Hg is nicer for developers, but git is superior to both. I cant access the bitbucket atm but maybe its not setup yet. |
| ||
I cant access the bitbucket atm but maybe its not setup yet. I still had it as private while therevills and I were getting it set up. https://bitbucket.org/swoolcock/diddy I'll get therevills to put it in his top post. Feel free to fork and submit pull requests. :) |
| ||
I love just being able to right-click on the diddy folder and say 'update' so as long as that doesn't change, I'm good :) I agree! But now that is not so anymore? It seems you have examples and the diddy module in the same repository, maybe I'm just not familiar enough with Mercurial, but should you not separate the two into two separate repositories? So we can clone/checkout the module-only in the Monkey/module folder and (optionally) the one with examples somewhere else. In SVN it is simple to checkout a sub-folder, but mercurial works on a project basis, not on a folder basis (unless I have have missed something). So right now if you change a example, you change the whole project - and the examples are not required to be able to use the diddy module, and so should they really be part of the project? |
| ||
We are still going to use the SVN repository, so don't worry about using Hg if you dont want to. With SVN each folder has a .svn folder which means you can check out per folder (as long as you have the .svn folder in the first place). Hg has a top level folder called .hg, but only at the root. I don't want to separate the examples away from the module as it makes me actually code examples, but I can see what you are saying. |
| ||
So right now if you change a example, you change the whole project What's wrong with this? Mercurial stores changesets as patches. It only does snapshots for large files or big changes (IIRC). A one line change to an example is not going to be a big download. and the examples are not required to be able to use the diddy module No, but the examples will be dependent on certain versions of Diddy. I love just being able to right-click on the diddy folder and say 'update' so as long as that doesn't change, I'm good :) If you configure TortoiseHg to move the "Synchronize" option out into the main menu, and you set post-pull to automatically update to the tip, it's three clicks rather than two. Instead of "right click, Update", it's "right click, Synchronize, Pull". |
| ||
Late to the thread but I prefer svn. I check for updates 2-3 times a day and would really hate to see svn go. |
| ||
> No, but the examples will be dependent on certain versions of Diddy. Good point > We are still going to use the SVN repository, so don't worry about using Hg if you dont want to. I'm still curious how do you guys put diddy into the modules folder when using mercurial then? The reason I'm asking is that I'm in the same boat myself (for my own modules), and the way I solved it was to split them up in two projects since I found no other way around this. I can always use SVN in this particular case with diddy, that is no problem. But since I'm facing the same problem myself every day (and I'm not using both, I'm only using Mercurial) I'd love to hear how you solve that problem? |
| ||
I use the MODULE_PATH config variable in monkey-ext to point to my Diddy directory. http://code.google.com/p/monkey-ext/ |
| ||
Ah, obviously :) monkey-ext is getting better each day, make me wounder why those additions are not official, anyhow I didn't find any installation instructions tough. If it was official I'm sure Ziggy and Ted would have it in the IDE. So useful to be able to optionally add modules like that. Am I correct in that I only need to copy mojo to the modules dir? And for each new monkey release (once updated) click "SVN Update" and then move the new mojo (if changed) to the modules folder? |
| ||
svn checkout from me. But my own code uses Hg. Currently finding myself using Fossil, which is great (includes Tracker and Wiki in a single executable) Otherwise, git for GitHub/Bitbucket stuff for clients work. As for modules maintenance, I do have the modules in a separate folder and manage them there. A shell script copies all of that to a MonkeyPro folder (happens to be a symlink to the last version downloaded...) Should also patch the targets for having my resolution of choice but well, that's still by hand. |
| ||
Initial setup: 1) Install TortoiseHg 2) Make an empty directory somewhere for the repository. Call it whatever you like ("Diddy" is probably easiest). 3) Right click the background of the empty folder, and choose TortoiseHg > Clone 4) Source: https://bitbucket.org/swoolcock/diddy Destination: The directory you're cloning to. Click Clone, and it'll download the repository (it might take a while). You now have the latest version of Diddy (yay!) 5) Right click the background again and choose TortoiseHg > Repository Settings 6) Choose Workbench option from the list on the left. For "After Pull Operation", change it to "update". Click OK. From now on, when you want to get the latest version of Diddy: 1) Right click the background of the repository folder and choose TortoiseHg > Synchronize 2) Click the "pull" button. It should download all the recent changes to Diddy, and automatically update you to the latest version. Note that with distributed version control like Hg and Git, you have the entire repository on your system. This means that you can see every change made to Diddy since day one, and you can easily revert to an older version if a bug is introduced. With a centralised repository like SVN/CVS, it's a lot more effort to revert to older versions (you need to have an internet connection available, and it will want to download a lot). |
| ||
OSX command line (assuming you have got macPorts) (go MacHg for the no-CLI thing) sudo port install mercurial But.. as there are issues with Lion http://www.tobiasmuehlbauer.com/2011/07/06/mercurial-scm-hg-fix-for-os-x-10-7-lion/ After mkdir diddy_hg PhilMac:MonkeyModules philippeback$ cd diddy_hg PhilMac:diddy_hg philippeback$ hg clone https://bitbucket.org/swoolcock/diddywarning: bitbucket.org certificate with fingerprint 24:9c:45:8b:9c:aa:ba:55:4e:01:6d:58:ff:e4:28:7d:2a:14:ae:3b not verified (check hostfingerprints or web.cacerts config setting) destination directory: diddy requesting all changes adding changesets adding manifests adding file changes added 453 changesets with 1079 changes to 368 files (+1 heads) updating to branch default 248 files updated, 0 files merged, 0 files removed, 0 files unresolved PhilMac:diddy_hg philippeback$ ls diddy PhilMac:diddy_hg philippeback$ cd diddy PhilMac:diddy philippeback$ ls LICENSE.txt diddy.png examples src data diddy128.png smalldiddy.png utils PhilMac:diddy philippeback$ Good to go! |
| ||
(go MacHg for the no-CLI thing) Have you looked at SourceTree? Another Mac developer I know put me onto it. Admittedly I'm using it for Git, but it's a lot more polished than MacHg. I haven't tried it with Hg yet. It's on the App Store, but I was recommended to get it from their site for more frequent updates. http://www.sourcetreeapp.com/ |
| ||
No, frankly I do it all on the command line. Thanks anyway, I'll have a look :-) |
| ||
No, frankly I do it all on the command line. Yeah I'd do it command line too, but for the wise words of Nyaruko-san: "I could show you my true form, but you might lose some sanity points." |
| ||
Mmh, the fact that this makes me thing of Lovecraft kinds of shows my age :-) |
| ||
In case you didn't get the reference: http://anidb.net/perl-bin/animedb.pl?show=anime&aid=8719 Back on topic, I've checked the latest Hg default branch into Subversion. |