Possibly Painful Merges Ahead

Dec 22, 2015
1,042
107
63
36
!!!ATTENTION!!!

We are making some major changes to the file structure of ServUO in an effort to reduce technical debt and make future development easier. However these changes mean that projects that have not forked directly from ServUO using Git, and are not using Git to manage merges to their projects, are going to have a tough time merging these changes.

If your project falls under this category, fear not! We can still help you get on the right path with a little Git trickery. Please post in the Script Support forums and we'll work on it.
 

Tasanar

Admin
ServUO Developer
Oct 16, 2014
4,679
188
63
33
trueuo.com
Shard Name
Heritage
Donate
Donate money to this user
Stupid question, say I do NOT use github yet but also have VERY minimal script edits(like5) that are well documented. Will I still have a hard time?
 

Tukaram

Squire
Jan 4, 2015
351
50
28
56
Oh well... I am using the EC fork that Dragon Slayer posted (for a short time). I am so far out of the update loop I will probably never catch up ha ha
 
Dec 22, 2015
1,042
107
63
36
Good question :) Commit c2450201f963d827359b6ea244932acd960b0424 is the last one prior to the start of the taxonomy changes. I suppose since we're already doing Items and having this pain we should do Mobile as well. Should be done by end of week.
 
Dec 22, 2015
1,042
107
63
36
Stupid question, say I do NOT use github yet but also have VERY minimal script edits(like5) that are well documented. Will I still have a hard time?
Tasanar, I would recommend that you fork ServUO and then manually apply your edits on top of that. That's probably the easiest way to go. Here's the tutorial I wrote about how to manage this if you're keeping everything on GitHub and using the command line: https://www.servuo.com/tutorials/how-to-manage-a-shards-code-with-github-and-the-command-line.15/

I need to write a new one using SourceTree for folks that don't like the command line. SourceTree has the same commands (clone, checkout, fetch, push, etc) but they are buttons and such.
 
Dec 22, 2015
1,042
107
63
36
Debt and taxonomy, I'm confused.
I'm sorry, that was disrespectful of me. I am working on speaking more clearly, it's a personal flaw.

We're trying to make ServUO less complicated to work on. One of the first steps is placing source files into a directory structure that is easy to understand and accurate. An example is having all Artifacts under Items/Artifacts rather than scattered across Items/Armor, Items/Weapons, Quests/*, Services/Quests/*, etc.

Future work on making ServUO less complicated includes breaking up the large base classes like Item and Mobile and unifying core and scripts, but this is going to require some serialization magic. That'll be further down the road.
 

Visam

Squire
Mar 19, 2015
310
76
28
47
Things have gotten so messy over the years should help out a lot in the future...
 

Punkte

Shard Owner
Jun 13, 2014
123
35
28
31
www.ultima-shards.com
Shard Name
Ultima Shards
Donate
Donate money to this user
Tasanar, I would recommend that you fork ServUO and then manually apply your edits on top of that. That's probably the easiest way to go. Here's the tutorial I wrote about how to manage this if you're keeping everything on GitHub and using the command line: https://www.servuo.com/tutorials/how-to-manage-a-shards-code-with-github-and-the-command-line.15/

I need to write a new one using SourceTree for folks that don't like the command line. SourceTree has the same commands (clone, checkout, fetch, push, etc) but they are buttons and such.
I have a tutorial I just pulled out of the old archives for setting up a Repo using Bitbucket and GitGUI (Alternative to SourceTree and much easier to read)
There's even some video content in there that may be useful for someone trying to use a branch versioning tool like SourceTree.

You can find that here.
https://www.servuo.com/tutorials/guide-on-using-git-gui-and-bitbucket.17/
 
Dec 22, 2015
1,042
107
63
36
I commented on the tutorial's thread. It doesn't address staying current with upstream, which is the real issue here.
 
Dec 22, 2015
1,042
107
63
36
Sorry again. I keep forgetting most of our community members are not life-long developers. And that's totally OK. We want ServUO to be a product that anyone can use and create with. Unfortunately the current model of editing source code to make those creations requires the use of development tools to make things go smoothly.

Upstream means the project you base yours on. So ServUO would be the upstream of your shard, Tasanar. We want to configure things properly so that when changes are made "up stream" from your project, those changes can easily flow "down the stream" to your project and integrate well. That way everyone benefits from updates to ServUO and we reduce the overall effort that shard owners have to put in to updating.
 
  • Like
Reactions: Crome969

john burns

Knight
Mar 12, 2014
746
26
28
49
Michigan, USA
vachiadroylia.dynu.net
Shard Name
Vachia Droylia
Hey Norman, what you are trying to do, in a sense, is create a version of ULive Map Streamer for ServUO.com that will download the updated files directly to our servers so we, as shard owners, do not need to update the software every so often.

Right?

If I am right, nice move on your part.
 

dmurphy

Admin
ServUO Developer
Feb 10, 2014
1,013
232
63
31
Hey Norman, what you are trying to do, in a sense, is create a version of ULive Map Streamer for ServUO.com that will download the updated files directly to our servers so we, as shard owners, do not need to update the software every so often.

Right?

If I am right, nice move on your part.
No,

That is not what is happening. That functionality is already available if you are participating in the downstream of the git repo.
 
  • Like
Reactions: Hank

Visam

Squire
Mar 19, 2015
310
76
28
47
They are just re-organizing the files where files of the same type are in a folder together instead of spread all over the place so it won't be so hard to find them. (ie: all weapons in a weapons main folder together instead of some being in the quests folder etc...)

Git will already help you merge changes if you have it setup properly on your end.