Home | Forums | Contact | Search | Syndication  
 
 [login] [create account]   Monday, June 30, 2025 
 
slxdeveloper.com Community Forums  
   
The Forums on slxdeveloper.com are now retired. The forum archive will remain available for the time being. Thank you for your participation on slxdeveloper.com!
 Web Forums - SalesLogix Web Platform & Application Architect
Forum to discuss the use of the SalesLogix Web Platform, Client and Customer Portals, and the Application Architect (For version 7.2 and higher only). View the code of conduct for posting guidelines.
Forums RSS Feed


 Back to Forum List | Back to SalesLogix Web Platform & Application Architect | New ThreadView:  Search:  
 Author  Thread: Git Extensions
Andrew Grandin
Posts: 272
 
Git ExtensionsYour last visit to this thread was on 1/1/1970 12:00:00 AM
Posted: 23 Apr 10 5:22 AM
Hi All,

apologees if this isnt quite in the correct forum but we are upgrading from LAN 7.2 to Web 7.5 and are loking into using Git Extensions for version control etc. Ive been doing research but cant quite get my head aropund how Git handles conflicts.

For example, if 2 developers work on the OOTB Account Details Form on their local repository, how does git know to merge their changes together when they each push their developments at different times? How does it know to merge them and not have the developer 2's changes overwrite developer one's?
[Reply][Quote]
Ryan Farley
Posts: 2265
slxdeveloper.com Site Administrator
Top 10 forum poster: 2265 posts
 
Re: Git ExtensionsYour last visit to this thread was on 1/1/1970 12:00:00 AM
Posted: 24 Apr 10 10:47 AM
First of all, let me say that Git is just awesome. If you're new to using a SCM then Git is a great place to start. If you're used to another SCM, like SVN, TFS, etc, then you'll love Git even more

So, to your question:

Quote:
if 2 developers work on the OOTB Account Details Form on their local repository, how does git know to merge their changes together when they each push their developments at different times?


Basically, here's how this works in a nutshell. I'll assume you're both pushing to some central store, such as a repo on an online service like Github or a bare repo folder on the network. Both Dev1 and Dev2 show up for work and they start their day by doing a pull to see if there are any changes. Dev1 and Dev2 both need to make a change to the AccountDetails QuickForm. Dev1 opens the Account Detail and makes a change. He is now done and commits the change and then pushes back to the central repo. Meanwhile, Dev2 is still working on the AccountDetails QuickForm. When he is done, he commits his change to his local repo. Now, however, when he attempts to push back to the central repo, Git tells him that there are newer changes in the central repo than when he last pulled his local repo (one of these changes is a conflict on the AccountDetail since it has a change and so does his local repo). Dev2 does a pull to pull down the changes into his local repo. When he does the pull, Git will tell him that there is a conflict that needs to be resolved. Git will launch your configured merge tool (such as KDiff3, BeyondCompare, DiffMerge, etc) and allow you to merge the changes together. Once you've merged the changes, you will commit the change to your local. Now Dev2 is all up to date with what was on the central repo and can now push his changes in. If Dev1 now does a pull, he doesn't need to do any merging since his change is already merged in with the change from Dev2 (Dev2 merged them and pushed it back). So, his pull will pull all the changes and he'll be good to start again.

Does all that make sense?

The biggest benefit to all this is that Dev1 and Dev2 have these separate environments. Something that Dev1 did that breaks things won't slow down Dev2 a bit since they're both working off their own local repo. I can't tell you what a huge breath of fresh air for someone used to working with SLX this is.

To get started, here are a few things to thing about:

1) Knowing how to use a merge tool is crucial. If you don't have one you like, there are several free options out there. Beyond Compare http://www.scootersoftware.com is awesome but not free, but so are DiffMerge http://www.sourcegear.com/diffmerge/ and KDiff3 http://kdiff3.sourceforge.net/ as well and they are both free. You'll use a merge tool often so it helps to know how to use it.

2) Use Git Extensions for SalesLogix. See installation info here: http://wiki.github.com/CustomerFX/SalesLogixGitExtensions/installation . IMO, this is a huge time saver for a SLX dev working in AA. To use Git Extensions for SalesLogix, you'll also need gitextensions installed (See http://code.google.com/p/gitextensions/). This will also install mSysGit which is the actual Git for Windows bits. TortoiseGit is also a nice tool that gives you some Explorer integration, see http://code.google.com/p/tortoisegit/

3) Creating a local Git repo is easy, so to start out and get familiar with Git create one. Throw some text files into it and play around with making changes, committing the changes and pushing to a central repo. This will make is easier to see what is going on in a smaller scale before you're working with an entire SalesLogix model.

4) This is a great place to post questions along the way

Good luck.

-Ryan
[Reply][Quote]
Andrew Grandin
Posts: 272
 
Re: Git ExtensionsYour last visit to this thread was on 1/1/1970 12:00:00 AM
Posted: 26 Apr 10 10:31 AM
Thanks for your reply Ryan i feel a bit better about it now
[Reply][Quote]
 Page 1 of 1 
  You can subscribe to receive a daily forum digest in your user profile. View the site code of conduct for posting guidelines.

   Forum RSS Feed - Subscribe to the forum RSS feed to keep on top of the latest forum activity!
 

 
 slxdeveloper.com is brought to you courtesy of Ryan Farley & Customer FX Corporation.
 This site, and all contents herein, are Copyright © 2025 Customer FX Corporation. The information and opinions expressed here are not endorsed by Sage Software.

code of conduct | Subscribe to the slxdeveloper.com Latest Article RSS feed
   
 
page cache (param): 6/30/2025 1:55:22 PM