Sommige project broncode bestanden zijn in conflict (door git)

Probleem

Na een problematische git merge krijg ik deze melding als ik het project wil uitvoeren (run):

Sommige project broncode bestanden zijn in conflict.
Los deze eerst op indien je het project wil compileren.

Bij een aantal bestanden staat een rood uitroepteken; die bekijk ik.
In de editor krijg je de mogelijkheid naar het volgende/vorige conflict te gaan, en je oplossing te bewaren.

Ik heb al heel wat Forms en Modules aangepast, en lijk klaar te zijn.
Toch blijft de melding komen, zonder aan te geven over welke het specifiek gaat.

Ook een “zoek” in de IDE op “Broncode bestanden” en “Alle bestanden” naar de typische* codes van een merge conflict, levert geen gevonden bestanden meer op.
(* In het “probleembestand” vind je dan bv: <<< HEAD , ==== , >>> master)

Opgelost
Ik heb de merge conflict reaktie niet meer bij de hand om op te zoeken in welke bestanden er een conflict was.
Ik doe via de commandolijn een zoek in de bestanden in de directory, en daarbij kom ik uit op de verborgen project file:
.project
Die begint met :
# Gambas Project File 3.0

Daarin waren nog merge conflicten aanwezig.

Eens die opgelost zijn, eerst in git terug: git commit -am "fix merge conflicts", en het project terug openen in Gambas3.
Nu gaat de IDE weer normaal reageren, bv met overblijvende problemen als dubbele declaraties, incorrect overschreven functie in class, enz.

Testen van database verbinding

Foutmelding als “System error 110” vanuit sql zijn soms veroorzaakt door een slechte/trage verbinding.
Best maak je een standaard db-test project dat niets doet behalve de verbinding testen, en dan kan je dat steeds weer gebruiken.

Is de database verbinding nog ok?

  • Database gegevens initialiseren.
  • Database verbinding openen
  • …loop van het programma dat gegevens gebruikt
  • Database verbinding sluiten

Het probleem dat hier kan optreden is de duur dat de databaseverbinding open blijft. Hoe langer het programma draait, hoe meer kans dat de database op een bepaald moment niet bereikbaar is. Typisch is na het blijven openstaan gedurende de nacht; eerste handeling de volgende dag doet het programma crashen als de databasefouten niet juist worden opgevangen.
Het alternatief kan zijn bij elke aktie op de database de verbinding te openen en te sluiten.
Of de verbinding te testen en indien niet meer goed, te heropenen.

Hoe best de procedures maken in de Data module?

Je kan een “result” teruggeven, die kan verder verwerkt worden in de aanroepende code:

PUBLIC SUB getWorkedOn(sWork AS String) AS Result
'  
  DIM myResult AS Result
  DIM sSql AS String
'  
  sSql = "SELECT * FROM reg "
  sSql &= "WHERE reg_type='U' AND ord_code = &1 "
'  
  TRY myResult = $hConNoxqs.Exec(sSql, sWork)
'  
  IF ERROR 
    sLastError = Error.Text
    RETURN NULL
  ELSE 
    RETURN myResult 
  ENDIF 
'
END

Of je kan een waarde teruggeven:

PUBLIC SUB getEmployeeCount() AS Integer
'
  DIM iMonthNames AS Integer
'
  $hResEmployees = MData.getEmployees(MCommon.bActiveOnly)
'
  iMonthNames = $hResEmployees.Count
  SetLog("Employees used: " & iMonthNames & ", active employees: " & Str$(MData.activeEmployees("A")))
'
  RETURN iMonthNames
'
END

Gambas opstart: “set $EDITOR” bericht

Bij het opstarten geeft Gambas3 de melding:

Please set the $EDITOR environment variable with your favorite graphical text editor. Some version control commands need it.

Je kan die variabele instellen met:

export EDITOR=mijnprogramma
export VISUAL=mijnanderprogramma

bv
export EDITOR=nano

Om vast in te stellen:
.bashrc

In opensuse staan al een paar voorbeelden klaar, je moet enkel het hekje verwijderen:

#export EDITOR=/usr/bin/vim
#export EDITOR=/usr/bin/mcedit

Gebruik één van de voorbeelden of vul je eigen favoriet in, als ..

  1. /bin/ed
  2. /bin/nano
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

Nadien zal de vraag niet meer gesteld worden.
Git zal ook die editor gebruiken. (?check)