Sad introduction and help with .GitIgnore for Clarion

Good Day

I am a developer here in South Africa. My Dad was one of the first Indian Developers in South Africa, and he Programmed on Clarion until his sudden passing on 10 July 2023. (Aged 67) My dad and I were in the business together , and i am a web and mobile apps developer. I used to also to the support for my dad’s clients, he has clients that are 25years on clarion .I never did any serious development on clarion and now i have been put in an extremely difficult position to maintain his clarion apps, as they are all Business systems, Mainly POS type , so peoples business are highly dependent on them .

I dont have the luxury to only focus on leaning clarion as i have my own client base that i need to do development for to survive.

So you will be seeing my name a lot on this forum, and i would greatly appreciate your patience and help with my questions.

My dad did not use source control , i am used to git. can somebody please provide me with a sensible .gitignore file to get started

Thanks

1 Like

Hello
Sorry for you loss.
Version control with pure git does not work out of the box, as the .app files are binary files and git is text optimized.
See this thread

I am a single developer, so I just use my backup history to compare or roll back when needed (Had some really bad experience with the Clarion generated text import and export back in the Clarion 6 days)

Thanks Bjarne, Ok git wont work fully, but it will work reasonably that if im just pushing changes to have a cloud backup , it should be fine i guess…

I’m sorry for your loss.
I strongly encourage using Git with clarion.

While it’s most natural when working with projects that don’t use APPs or DCTs, you certainly can use git with APPs and DCTs. @Rick_UpperPark has even written a tool to help you work in exactly that environment.

I don’t use APPs or DCTs - which is known as hand coding in the clarion world.
So I’ll step back and wait for someone who uses Rick’s tools to comment.

Once you go git, all of the old backups and the hoops you have to jump through to compare them and keep track just seem silly. Whether one dev or twenty, git is the only way to go.

If you want to sell your company, having the code in a repo goes a long way for helping the buyer do their due-dilligence. Especially if you have some years of history in it.

Man. Sorry for your loss.

If you are already into git, you can use it with Clarion with the UpperPark addon (if he was using C10 or C11), but maybe C9 works OK too.

Do you have any more info about his setup?

It might be good to show a screenshot of what files are showing in your git repo, but here’s a very rudimentary gitignore:

*.dll
*.exe
/obj/*
/map/*
*.sln.cache
/D32.LOG
*.bak
2 Likes

Hey bud, Thanks you for the feedback, he was on Clarion 11.

Thats a great starting point for me. That helps alot

Thanks everyone for the recommendations.

Kajee, if you are interested in exploring my source control solution for Clarion, you can check out a couple of online videos:
There are a number of Webinars demonstrating using the addin with Clarion.
Webinar 375 is a good one.
http://www.mediafire.com/file/x6s0w7ab3k33ex2/ClarionLive375_20160826_RickMartinUpdateOnVersionControlAddin.wmv/file

Also, my presentation at CIDC 2017 is available on YouTube:

I won’t object. I have all my .NET and Java work in github and couldn’t work without it. Not using it with Clarion was a result of a) bad experience with lost code due to problems with export/import txa b) SoftVelocity removing source control from IDE.
I might take a developers day to see what benefit I can get of it. Change history per app could be nice instead of relying on my (usually excellent) memory.

Based on my experience over the past five years or so, I can confidently say that Rick’s tool ensures that no code is lost during the export/import process. Each procedure in the application is exported to its own APV file (TXA but renamed), along with two additional files for the globals and global options. To maintain a clear timeline in your repository, it is advisable to perform regular exports and commits of the code.

However, it’s important to note that this particular aspect of source control may not provide significant value in terms of maintaining a comprehensive history of your changes. The Clarion IDE introduces a lot of changes when exporting procedures, even in procedures you haven’t directly worked on. Fortunately, these changes can be disregarded before committing.

In terms of Clarion source code history, I highly recommend that every developer, regardless of whether they choose to use source control for their applications, make changes to the global RED file or create a local one for their solution. This will allow all generated code to be placed in a subfolder within the solution folder. Personally, I have a build event that copies these files elsewhere, and I commit to a different repository. I do this to avoid committing generated CLW and INC files with the application repository.

If you’re not currently utilizing source control, you can simply create a repository in this source folder and commit regularly. This approach will provide you with a good understanding of the project’s history and the changes you have made.

Considering the cost of Rick’s tool, I strongly suggest taking the leap and implementing source control for your applications. The ability to branch, track history, revert changes, and merge code is highly beneficial and well worth the investment.

Best regards,
Mark

3 Likes

The selective procedure export functionality of my source control addin definitely help reduce the impact of the random, insignificant changes that appear in the export to text.

1 Like