fbpx

Synchronizing code changes between users on different location without Github?

More
6 months 1 day ago #1 by Dick
For VO, when employees made changes, we send the changed .prg's/.mef's/.aef's to each other when needed. From time to time, I send the whole project directory which, after some checks for change code, will be "synchronized", for a while.

We want to do that for Visual Studio based projects as well, but preferably a bit easier. I am not sure if this is possible given our requirements:

1 It should NOT be an automated synchronizing tool. Changes should be checked before applied in a solution
2 It should NOT use a Microsoft cloud environment. That includes Github, which Microsoft acquired and as we all know, everything that Microsoft buys from a 3rd part will die within 2-3 years at most. Apart from that,everything published in Github has public access in the free plan and I am not willing to pay for an account using technology which I don't even want to use.

Preferably we want an upload of changed code to our own servers (like WCF, FTP, or even e-mail) and read it in other projects when it's convenient.

I know there are alternatives like Bitbucket. It's Australian owned which sounds good but It's still based upon external cloud usage and it comes with 50 mins/month Build minutes which for me is totally unclear: do we need that? If so, how many minutes?

We are aware of the fact that Visual Studio does not have an automated "commit" like VOPP has on existing VO. I also assume that a repo system may be the only way I can do it although when I used it for a while a few years ago I spent more time repairing "ghost misconfigurations" than I have spent repairing even the olders VO repository errors so a system tracking & exporting/importing changes without a repo would be ideal.

Does anyone have experience with alternatives and preferably those who are closely to my objectives?

Dick

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago - 6 months 1 day ago #2 by Fabrice Foray
Hi Dick,

I (personally) really think that you should go Git.

ic2 wrote: 1 It should NOT be an automated synchronizing tool. Changes should be checked before applied in a solution

If pulling a change has an impact, then the DEV will have to proceed to merge and valid the changes; nothing automated here.

ic2 wrote: 2 It should NOT use a Microsoft cloud environment. That includes Github, which Microsoft acquired and as we all know, everything that Microsoft buys from a 3rd part will die within 2-3 years at most.

Mmm, not sure that Windows Server, Windows Desktop, Visual Studio or Xamarin will die in a near future...Just my feeling ;)

ic2 wrote: Apart from that,everything published in Github has public access in the free plan and I am not willing to pay for an account using technology which I don't even want to use.

Preferably we want an upload of changed code to our own servers (like WCF, FTP, or even e-mail) and read it in other projects when it's convenient.

The price is due to a service (like your app I suppose) : At least, you have a kind of insurance about backups, Server updates, ... but sure you can do it yourself, but the time you will spend on it is a working-time...so it also has a cost ;)

ic2 wrote: We are aware of the fact that Visual Studio does not have an automated "commit" like VOPP has on existing VO.

Yes, maybe you can run Visual Studio from a batch file, that force a push on exiting... But you will miss the comment you SHOULD put when pushing your changes.

Now, if you want to have your personal web/git server, I strongly suggest that you spend few minutes looking to Gogs .
It is a free, self-contained, Github-like solution.
Very easy to setup, linkable to ADS if needed, Cros--Platform, ....

I use it as an internal Git service at School for student's projects, definitely worth to look at.

HTH,
Regards,
Fab
Last edit: 6 months 1 day ago by Fabrice Foray. Reason: Syntax correction

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago #3 by Stefan Hirsch
Hi Dick,

I can also recommand git. You can set this up locally on your own server environment.
I have installed this on a Synology NAS that is also accessable via VPN from home office. Integration in XIDE would be a nice to have.

Stefan

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago #4 by Wolfgang Riedmann
Hi Stefan,

Integration in XIDE would be a nice to have.


That would be interesting for me too... Should be possible with the plugin interface.... Only thing I miss is time <g>.

Would help a bit with the Tools library.

Wolfgang

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago - 6 months 1 day ago #5 by Dick
Hello Fabrice,

Thanks for your thoughts.

I (personally) really think that you should go Git.... At least, you have a kind of insurance about backups, Server updates....the time you will spend on it is a working-time...so it also has a cost


I understand your advice but for me Microsoft Github is a no go. Almost everything I use either created or ruined by Microsoft has worked out badly. Backup space I have more than enough elsewhere, so why pay for it? Server updates are even worse, they invariably cause trouble and should be applied with the lowest possible frequency, so I agree with the cost of time spent but the opposite of what you mean. ;)

Mmm, not sure that Windows Server, Windows Desktop, Visual Studio or Xamarin will die in a near future...


You'll never know with Microsoft but I am especially talking about acquired products like the Windows Phone, Wunderlist, aQuantive. Plus they are very good in ruining their own products as well. By withdrawing the support for IE trying to force users to use a crippled Edge with almost no features they are now on the verge being irrelevant in the browser market. Windows 8 was so intensely hated that even the market share of W10, given free for 1,5 year, still is roughly 1/3rd lower of that of W7 which actually has gone up in the first month of this year (see www.techrepublic.com/article/windows-10-...ows-7-use-increases/ for example). Skype has also got a much hated new look and as a result Microsoft didn't even release figures for 2 years, but it's estimated they are losing users or keep their 300 million users at best. The only nice product I know from Microsoft (that is besides Spider Solitaire which BTW doesn't work anymore either in the W7 version without a trick), OneNote, is being killed as well the same way as IE: users are directed to an also crippled OneNote app because Microsoft must be able to inspect the data you enter in it in their cloud system (the OneNote app does not allow storage on disks).

Most users are happy to store their code on such a company's servers. I am not.

Now, if you want to have your personal web/git server, I strongly suggest that you spend few minutes looking to Gogs .


Looks interesting but I think it requires your own server? I have reseller packages on shared severs but can't setup the environment. I'll check that out further.

Dick
Last edit: 6 months 1 day ago by Dick.

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago #6 by Dick
Hello Stefan,

I think a locally setup git has the same problem with Gogs recommended by Fabrice: I would need my own server, not a shared server with my own hosting places.

Not 100%, I'll check further.

Dick

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago - 6 months 1 day ago #7 by Fabrice Foray
Dick,

Looks interesting but I think it requires your own server?

Well, yes you need a computer to run the application.
But you can have different scenarios :
- Shared server where you run the Gogs application : It will have it's own git-server and web-server process.
So, all devs are syncing to this server
- In-House server, running on... your desktop machine.
Each dev is pushing on his own repo, and every time you meet, you sync your changes...Try to keep it small to avoid some merge nightmares ;)
- Buy a RPI-3, put Gogs on it with an external... NAS/Hdd/Whatever you want; and open the ports of your router to point to this machine, and your done !

Fab
Last edit: 6 months 1 day ago by Fabrice Foray. Reason: Add a new scenario

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago #8 by Robert van der Hulst
Dick,
Ms has moved many parts of their own source code from their internal SCC servers to GitHub. I seriously doubt that they will kill GitHub. It will hurt them too.
We (X#) have a company account with GitHub. It costs us USD 25 per month and allows us to setup private repositories.
For that money you can't setup a Git server yourself.
And they make sure that the server keeps running. They have to because they use it themselves.

Robert

XSharp Development Team
The Netherlands
This email address is being protected from spambots. You need JavaScript enabled to view it.

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago #9 by Dick
Hello Robert,

There's no way I will use Microsoft Github. Even if they would pay me for it.

Even if they don't kill it there's a good chance that they ruin it at some point in time. I'll remind you to this post when they did.

But for now: Microsoft is far too eager to get data from users on their own servers. See the OneNote app: they are very well aware that a part of the users don't want (or are not allowed, like legal data) to put data in the cloud but they refuse to give the OneNote app a local storage option while they stop maintaining OneNote 2016 still can store on disks - they even silently remove it from Office 365 installation if people haven't used it so far!.

A company doing things like that can not be trusted with whatever data I have: so I've killed their telemetry, I don't use their Onedrive except for some tests and I will certainly not use their Github.

Dick

Please Log in or Create an account to join the conversation.

More
6 months 1 day ago #10 by Dick

But you can have different scenarios :


Thanks Fabrice; I will spend some more time finding out how.

Dick

Please Log in or Create an account to join the conversation.

More
6 months 3 hours ago #11 by Dick
Hello Fabrice,

After checking the -limited- documentation from Gogs I have found no way to install it on a shared server. Everywhere there's a set of commands I have to enter and one thing you can not do on shared servers is entering commands or changing the file 'hosts' or something like that. RPI3 may work but that's too much trouble. I'll search a bit further, maybe there's another solution.

If I don't find anything better I consider writing a small application which just collects the files with a changed date, zip & send them and just update the project on the other system. That is a bit of work but trying to set up any of the existing systems is too. I think I spent days before I got my Tortoise/Subversion working a few years ago, understanding more or less what it was doing until I found out it caused more trouble than it gave benefits.

Dick

Please Log in or Create an account to join the conversation.

More
6 months 3 hours ago #12 by Wolfgang Riedmann
Hi DIck,

maybe the best option would be to setup this software on an internal server and make it available through a VPN or a portwarding to the people that works outside.

Wolfgang

P.S. for our company I have decided to buy a GitHub account. This service is so important to Microsoft that they will not abbandon it the next years - and nothing is forever

Please Log in or Create an account to join the conversation.

More
5 months 3 weeks ago #13 by Mathias Håkansson
Don't forget to value the things you get with git (or scc, or Subversion).

* All changes can be reviewed by others and the code before and after can be compared.
* "Syncronization" is on character/row level instead of file level.
* Allows you do divide your work in branches.
- Test and code review developed features before merging to the main branch.
- Simultanious development of different features does not affect each other or the main branch until you want to.
* Store released versions in release branches and release service patches if nessecary.

Me and my coworkers would be in serious trouble if we did not have these features.

/Mathias

Please Log in or Create an account to join the conversation.

More
5 months 3 weeks ago #14 by Dick
Hello Mathias,

Originally I experimented with Visual Source Safe. It was terrible. But I see I am not the only one who thinks that:
"Visual SourceSafe: Microsoft's Source Destruction System"; see www.highprogrammer.com/alan/windev/sourcesafe.html .

Then I tried SVN/Tortoise. It was terrible. I lost code using it. Half of my programming time I was fixing corrupt revisions or damaged repositories and then I was the only one using it! So I decided to leave it unused.

I am now trying to setup Bitbucket. It seems to work but it has it's problems as well. First I had to chose between Mercurial or Git. According to several sites the latter has more cryptic and incomprehensible commands. Well, that definitely sounded to me as something Microsoft likes to buy.

I nevertheless have chosen to start with Git as this seems to be supported out of the box in VS. And I can always convert it to Mercurial later if I want. After a while I hope to see if for this the advantages are more than the disadvantages.

The way our team works makes the system less urgent and the advantages less important. But hopefully it works and saves some time.

See also my new post.

Dick

Please Log in or Create an account to join the conversation.

More
5 months 3 weeks ago #15 by Mathias Håkansson
Hi Dick,

we started out using Subversion, and that worked ok. Like you said you sometimes had to reconstruct the sourcefile manually från two different change sets.
After that we have been using Microsoft standard built into tfs (Visual source safe?). This works quite well for us. It manages to merge almost all changes. Image files changes cannot be merged if it has been changed by two different users at the same time, but thats expected. You have go through your merge conflicts thoroughly if different users has changed the same row.

Each change set is associated with its bug or backlog item, so if you annotate (show change set for each code line) you can see in what context each code row was added.

We are planning to switch to online git, but have been have been stopped by network security problems. Some kind of problem with AD:s that had to be syncronized. The benefit with git would be to smaller memory footprint of branches (locally and on the server, which in our case is a big deal, mostly locally as we keep running out of disk space), easier to work off line, and some interesting views (and probably more).

If there are more than one developer in the project you get great benefits of adopting a branching strategy.

/Mathias

Please Log in or Create an account to join the conversation.