CPM Feature Discussion - Version Control

Source/version control has been asked for in the past and the main reason it hasn’t been added is because I don’t care about it. :slight_smile:

Okay, I care, but in a theoretical way. I’ve been thankful for version control a couple times in the past when it’s saved me when I did something stupid, but it’s been enough of a hassle that I *don’t* use it unless I’m forced to (client requirement, etc.)

I do have Time Machine running, I also back up to Amazon S3 using Arq, and I manually throw things in Dropbox a few times a week, so I’m not working without a net.

The problem with adding source control to CPM is that I’m coming from a neophyte position – I could very easily do it wrong. :slight_smile:

For example, I know that a few years ago Subversion was all the rage. But recently all I hear about is Git. So which do I implement? Or do I have to put in both? And if I do that, what other version control systems are out there that would need to be put in as well?

CPM doesn’t store your source files – it only keeps info about the assets. My plan has been to add automatic backup to the database (to Dropbox or via FTP to your server) but the people wanting version control are wanting more than just a backup.

So, you people who know all about version control, and know about CPM, could you fill me in on how you think it should work (from a user standpoint of course)?

And, which version control system should I be aiming at?

Thanks for the feedback.

Jay
[import]uid: 9440 topic_id: 13895 reply_id: 313895[/import]

How about having a big fat ‘SAVE VERSION’ button in the corner that when you press it up pops a dialog allowing you to give a version number and add a comment.

This then saves all your assets, code etc to an archive saved somewhere usable so you can easily back up to a remote server yourself.

Then a cool feature would be a list of previous saved versions which you can select which then gives you two options: Overwrite the current game files / Create a new game from archive.

This way you could start to create CPM templates :slight_smile: ooooh…

– Chris

[import]uid: 33866 topic_id: 13895 reply_id: 51072[/import]

I really like that idea – I do something like that now, but manually. After I do a build to device that’s the “final” one I zip up the folder that I Publish’d to – that contains all the assets to recreate that project.

But a button to do the same thing, along with a list of previously saved versions would be cool. I think I’ll do that…

…in *addition* to version control, because the folks that want that aren’t just looking for a backup solution, I don’t think. :slight_smile:

Jay
[import]uid: 9440 topic_id: 13895 reply_id: 51108[/import]

I think when it comes to source control you have to think of a different atmosphere of development than the standard one programmer team. When I freelanced and just started out I’d have agreed with you that it was just a hassle and didn’t serve much of a purpose, just save your work right?

I now have a company with 4 developers and 8-10 contracted artists (a few full time as well) depending on our work load. This presented problems that source control solves. For example, on a current project I have one programmer doing all the UI and Menu stuff, another is working on gameplay, and a third on tweaking the physics. This is our first time all working on one project. We tried to keep everything separate but as I’m sure anyone who’s programmed a game or app has noticed, sometimes you have to change something in another file. Without source control that change can break down the entire production process as all the other developers will run the code and have strange errors that they didn’t create. This is why the source control is worth while to some of us. When I change something and check it in, if it over writes something we have to solve that issue before it’s submitted.

Honestly, I believe source control just requires people to solve problems and communicate when they rather be lazy :slight_smile:

Today, GIT is really where it’s at. Since the earlier days of CVS source control was a pain… Subversion was an attempt at changing the model and thought process towards it and it was better. Git is the next iteration and seems to be a lot better (it’s what we use).

And while this would simplify our lives, I feel that other things may be better suited to coming first:

  • Solving the search bug where you can’t close the window, edit text again on same search without hitting drop down arrow again, opens new window for every file, etc

  • Add a Go to Line feature with simply CMD+G shortcut key

  • Fix the text parsing where it doesn’t move the line for – end (only if end is on a line by itself)

  • figure out why sometimes as you scroll and type the text gets screwed up and it’s readable until you scroll or highlight the text you are working on

  • fix the window sizing. Today I just found out that one of the files has somehow re-sized to taller than the screen. Have no idea how to fix this… I assume this is a mac issue (can’t get to the bottom right hand side of the window). Maybe update to the new Lion scheme that re-sizes windows (Microsoft style…)

As much as I want source control I feel we spend a lot more time on simple things such as clicking around, scrolling through the text. This is of course all my opinion, and as you know I am quite opinionated and even I don’t think I’m always right :wink:

thanks,

-d

— Just read cl-apps post, I think it’d be a good solution for now as well. Nice idea, I’m constantly archiving stuff myself just in case… [import]uid: 27681 topic_id: 13895 reply_id: 51168[/import]

“- fix the window sizing. Today I just found out that one of the files has somehow re-sized to taller than the screen. Have no idea how to fix this… I assume this is a mac issue (can’t get to the bottom right hand side of the window). Maybe update to the new Lion scheme that re-sizes windows (Microsoft style…)”

I’m not sure what you mean by this – it doesn’t sound like something I’ve seen. Are you using the window’d editor and this is a source code window that’s too large?

If so, hold down Command and double-click the source file to open it. That will reset the size and location when it opens. If that’s not what you meant, give me more details (screenshots are always nice).

As far as version control goes, the last day I’ve been looking at Subversion vs Git vs Mercurial vs CVS vs Everything Under The Sun and am glad to hear you say Git, because I was looking at that as *probably* the fastest to implement. :slight_smile:

But I do hear you on the “annoyance list” – those things need to be fixed right away.

Thanks for the details.

Jay [import]uid: 9440 topic_id: 13895 reply_id: 51170[/import]

I know this thread is for talking about version control stuff, but since it was brought up here I thought I’d do a quick update…

Just squashed a couple bugs mentioned earlier (including one that was multiple bugs):

  • Find window now doesn’t duplicate, goes away with Cmd-W, etc. Fairly well-behaved.
  • Fixed text parsing so it only outdents if ‘end’ is on a line by itself.
  • Fixed Code Generator header template stuff that I broke in 2.5.1. :frowning:

I actually feel bad that I was able to fix those first two in just a few hours – since it took that little work it would have been nice to have been done earlier. But then, that wheel wasn’t squeaking at the time. :slight_smile:

I’m looking at that Go to Line # – which will turn into Jump to Line # since Cmd-J is available and Cmd-G isn’t – and it may make the next update, but not sure.

Jay
[import]uid: 9440 topic_id: 13895 reply_id: 51210[/import]

Jay, you just made my night. Thanks for all the hard work. I’ve been a strong critic, but now I realize I probably should have just spoken up more and kept you updated with one of your user bases. And while I bi**hed a bit, know that I’m willing to help in any way I feasibly can. We have a product we are using and if it continues to get better we’ll keep it and I’ll be a stronger supporter. I rather keep it since 1) we paid for it and 2) we all know it and 3) it’s not bad at all once the bugs are squashed out.
To answer your question, I’m not sure how it happened but I had a file that would open larger than my external monitor. I could never get down to resize it. The CMD+double clicking worked. I tried to duplicate it but couldn’t get it to do it. I’m guessing it was from me switching to laptop screen and external monitors.

CMD+J would be awesome! [import]uid: 27681 topic_id: 13895 reply_id: 51215[/import]

Any idea when this update will be posted? [import]uid: 27681 topic_id: 13895 reply_id: 51625[/import]

I’m trying to shake off a sinus thing that has me sneezing and doing other things every 2 minutes, so I’m kind of slowed down. Plus, in my QA pass I found a problem with the New & Improved! find window. I expect to fix that today, test again tomorrow, and put that version out on Saturday. Could be late Friday, since all the other testing I’ve done has gone well.

Jay
[import]uid: 9440 topic_id: 13895 reply_id: 51648[/import]

Wait, I’ll amend that – 12 minutes after posting that it was fixed, so I’ll spend the rest of the day pounding on it and then hopefully it will be out tomorrow.

I kind of wish you hadn’t mentioned the Jump To thing because now whenever I need to look at something and then jump back I grumble because it isn’t in there.

You know what I keep trying to do? Mouse up to the top-left corner and hit the “Back” button to go to where I just was. I’m going to have to figure out a decent way to implement that. Later. :slight_smile:

Jay
[import]uid: 9440 topic_id: 13895 reply_id: 51651[/import]

Jay get well soon!!! While on the topic of Dropbox, you know I use Dropbox as my main “Save-to” location.

This allows me to work with multiple Macs (ie Mac AIR while on the go and iMac while at home). It works well as long as you don’t have the project open on both machines. Version control eventually will help in this regard as it will be simply as if I’m 2 developers working on the same project. Meanwhile it could be simple enough to put a flag somewhere in your DB that gets switched on when CPM is running and off when its exited. Then each time you start CPM you can look at that flag and if its on you can alert the user to the possibility that another copy of CPM might be running on the same machine or somewhere else accessing the same project & db. User should still be able to proceed if he/she needs to or exit CPM on that machine. Just a thought. [import]uid: 11904 topic_id: 13895 reply_id: 51779[/import]

Yes, a “The DB Is Already In Use” flag in the database makes a lot of sense. Thanks.

Jay

[import]uid: 9440 topic_id: 13895 reply_id: 51812[/import]

False alarm on the release. :frowning:

Fixing the bug that caused false indenting on a line where it found the word “end” meant a change in the Corona.xml file, which is only written to your hard drive on the initial install, so doing an update would mean you’d never see that fix.

So can’t I just overwrite that file in the update? Yes, but that file is also where your color scheme is stored, and you’d end up back with the default coloring.

I need to do something to separate the two and since that one file is referenced many places in the program, it’s not a quick fix (I don’t think). I’m working on it tonight so we’ll see what happens, but if you keep doing a Check for Update in the app, you can stop for now. :slight_smile:

Jay

[import]uid: 9440 topic_id: 13895 reply_id: 51824[/import]

Let’s try to switch this thread back to discussion of version control – so to see the news on the latest release I was talking about a few messages ago, see this new thread:

http://developer.anscamobile.com/forum/2011/08/25/cpm-release-news-and-discussion

Thanks!

Jay
[import]uid: 9440 topic_id: 13895 reply_id: 52619[/import]