FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index Utilities / Utilidades Conscious Source Control – A Simple Team Version
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
Conscious Source Control – A Simple Team Version
Posted: Tue Feb 10, 2026 11:27 PM

Conscious Source Control – A Simple Team Version Control Model for Three Equal Developers

We are currently three equal developers working on a larger legacy/FiveWin-based codebase. Our main challenge was not tooling, but team coordination: how to manage version control in a small team where everyone can modify source code and integrate changes.

Instead of introducing a full Git workflow, we designed a lightweight, controlled process that fits our environment and responsibilities. We call it Conscious Source Control (CSC).

The core idea is simple.

There is one single Source of Truth (S:). This is the only accepted and valid state of the system. It is never modified casually. Updates happen deliberately, after verification, and during a short integration lock.

Each developer has a personal baseline (G:). This is not a shared repository, but an individual comparison and integration level. Development itself happens in a separate working copy — never directly on the Source of Truth.

The workflow looks like this:

Before starting work, a developer audits their personal baseline against the Source of Truth and updates it if necessary. Development then takes place in the working copy. When finished, changes are moved to the personal baseline and verified (file comparison, optional line-by-line review). Only after that, and with a short lock, the baseline is integrated back into the Source of Truth.

An important detail in our case is that the complete development environment (FiveWin, Harbour, compiler, libraries, tools) is part of the source tree. All three developers use exactly the same setup to avoid “works on my machine” situations.

For verification, we use a PowerShell-based audit script that compares source and target recursively. It checks file existence, size, timestamp (with tolerance), and calculates hashes only where meaningful (recent source files). Temporary build artifacts are removed before comparison.

The goal is not automation, but control. No silent merges, no implicit overwrites, no hidden state changes. Every integration step is deliberate and verifiable.

For a small team working on legacy systems with a shared toolchain, this model has proven stable, understandable, and predictable.

It may not replace Git in larger environments, but for our scenario it provides exactly what we need: controlled team version management without unnecessary process overhead.

Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
Re: Conscious Source Control – A Simple Team Version
Posted: Wed Feb 11, 2026 06:25 PM

Here is the clean English version of your update:

It’s quite remarkable how many files accumulate over 30 years of development.
We are comparing thousands of files in this setup.

The tool shows:

what is missing on the mirror server (with the source acting as the “source of truth”)
and which files are outdated and need to be updated
Each of us runs the tool and updates their local copies accordingly.

Since we are only a team of three, coordination is manageable.
We communicate who is currently working in which area to minimize unnecessary overlap and reduce the need for excessive synchronization.

I have further expanded the tool and added several practical enhancements:
🧭 Menu & Structure
Clear button-based navigation for multiple scripts
Clean separation between the launcher interface and script output
Live output displayed inside an iframe
Automatic scrolling during script execution

🎨 Status Visualization
Progress lines are highlighted in color
Final completion message is clearly marked
Structured log output for better readability

⚙️ Technical Improvements
Started via the built-in PHP server (php -s)
No additional web server installation required
Output buffering disabled for true real-time streaming
Direct popen() integration with PowerShell
Stable handling of Windows codepage (CP850) via byte-based character replacement

Continue the discussion