3

Is there any form of version control for Linden Scripting Language?

I can't see it being worth putting all the effort into programming something in Second Life if when a database goes down over there I lose all of my hard work.

Ry-
  • 218,210
  • 55
  • 464
  • 476
leeand00
  • 25,510
  • 39
  • 140
  • 297

7 Answers7

2

Unfortunately there is no source control in-world. I would agree with giggy. I am currently moving my projects over to a Subversion (SVN) system to get them under control. Really should have done this a while ago.

There are many free & paid SVN services available on the net.

Just two free examples:
http://www.sourceforge.net
http://code.google.com

You also have the option to set one up locally so you have more control over it.

Do a search on here for 'subversion' or 'svn' to learn more about how to set one up.

[edit 5/18/09]
You added in a comment you want to backup entire objects. There are various programs to do that. One I came across in a quick Google search was: Second Inventory
I cannot recommend this or any other program as I have not used them. But that should give you a start.
[/edit]

-cb

cyberbill
  • 134
  • 1
  • 7
1

You can use Meerkat viewer to backupt complete objects. or use some of the test programas of libopenmetaverse to backup in a text environment. I think you can backup scripts from the inventory with them.

Aragorn
  • 843
  • 12
  • 25
  • 1
    Meerkat object backup does not extend to the object's contents, unfortunately. Meerkat does have "Save to disk" and "Load from disk" options in the script editor, but you have to do each file individually. Batch import/export using libopenmetaverse also seems to be not quite there. I've been poking at the Test Client and even talked with the developer who sponsored a bounty to add the feature (Lex Neva), and learned that while individual script upload/download is now supported, there's not yet a free tool to sync a whole directory of scripts in SL inventory to your disk, or vice versa. – btubbs Sep 14 '09 at 02:56
1

Jon Brouchoud, an architect working in SL, developed an in-world collaborative versioning system called Wikitree. It's a visual SVN without the delta-differencing that occurs in typical source code control systems. He announced that it was being open sourced in http://archvirtual.com/2009/10/28/wiki-tree-goes-open-source/#.VQRqDeEyhzM

Check out the video in the blog post to see how it's used.

  • oh dear, following the links it looks like wikitree never took off.. but it would have been perfect for collaborative builds in secondlife and across opensim. – ocæon Apr 19 '19 at 21:46
0

I personally keep any code snippets that I feel are worth keeping around on github.com (http://github.com/cylence/slscripts).

Git is a very good source code manager for LSL since its commits work line-by-line, unlike other SCM's such as Subversion or CVS. The reason this is so crucial is due to the fact that most Second Life scripts live in ONE FILE (since they can't call each other... grrr). So having the comparison done on the file level is not nearly as effective. Comparing line by line is perfect for LSL. With that said, it also (alike SourceForge and Google Code) allows you to make your code publicly viewable (if you so choose) and available for download in a compressed file for easier distribution.

slant
  • 905
  • 8
  • 15
0

Late reply, I know, but some things have changed in SecondLife, and some things, well, have not. Since the Third Party Viewer policy still keeps a hard wall up against saving and loading objects between viewer and system, I was thinking about another possibility so far completely overlooked: Bots!

Scripted agents, AKA Bots, have all usual avatar actions available to them. Although I have never seen one used as an object repository, there is no reason you couldn't create one. Logged in as a separate account the agent can be wherever you want automatically or by command, then collect any or all objects you are working on at set intervals or by command, and anything they have collected may be given to you or collaborators.

I won't say it's easy to script an agent, and couldn't even speak for making an extension to a scripted agent myself, but if you don't want to start from scratch there is an extensive open source framework to build on, Corrade. Other bot services don't seem to list 'object repository' among their abilities either but any that support CasperVend must already provide the ability to receive items on request.

Of course the lo-fi route, just regularly taking a copy and sending the objects to a backup avatar, may still be a simple backup solution for one user. Although that does necessitate logging in as the other account either in parallel or once every 20 or-so items to be sure they are being received and not capped by the server. This process cannot rename the items or sort them automatically like a bot may. Identically named items are listed in inventory as most recent at the top but this is a mess when working with multiples of various items.

Finally, there is a Coalesce feature for managing several items as one in inventory. This is currently not supported for sending or receiving objects, but in the absence of a bot, can make it easier to keep track of projects you don't wish to actually link as one item. (Caveat; don't rezz 'no-copy' coalesced items near 'no-build' land parcels, any that cannot be rezzed are completely lost)

ocæon
  • 204
  • 1
  • 12
0

Can you save it to a file? If so then you can use just about anything, SVN, Git, VSS...

AaronLS
  • 37,329
  • 20
  • 143
  • 202
  • Well of course you can copy and paste it to a file, the code I mean, but what about the 3D objects that you attach the code to? I'm talking about backing up the whole entire thing, code, models and all. – leeand00 Apr 07 '09 at 12:22
0

There is no good source control in game. I keep meticulous version information on the names of my scripts and I have a pile of old versions of things in folders.

I keep my source out of game for the most part and use SVN. LSLEditor is a decent app for working with the scripts and if you create a solution with objects, it can emulate alot of the in game environment. (Giving Objects, reading notecards etc.) link text

Giggy
  • 526
  • 4
  • 8