Werken met patches

Dankzij patches kunnen ontwikkelaars hun werk met anderen delen zonder dit in een repository op te slaan. Dit is handig wanneer een ontwikkelaar iets wil bijdragen aan een project dat via een repository wordt gedeeld maar geen toegang tot de repository heeft. In dat geval kan de ontwikkelaar een patch maken en deze e-mailen naar een ontwikkelaar die wel schrijftoegang heeft of de patch koppelen aan een fout in het foutrapportagesysteem dat door het project wordt gebruikt, afhankelijk van het proces dat door het project is gedefinieerd. Een ontwikkelaar die schrijftoegang heeft kan de patch vervolgens toepassen op het project en de wijzigingen vastleggen.

Een patch maken vanuit een CVS-project:

  1. Selecteer de resource die de wijzigingen bevat die in de patch moeten worden opgenomen. Als in de wizard Patch maken (indien uitgevoerd in de standaardwerkstand) bekend is hoe een patch voor meerdere projecten moet worden gemaakt, kunt u resources selecteren die deel uitmaken van meerdere projecten en die op alle niveaus voorkomen. De patch moet ook worden toegepast op dezelfde bestandsherzieningen als waarop deze is gegenereerd en er moeten stappen worden genomen om ervoor te zorgen dat de patch wordt toegepast op dezelfde resourceline-up (de gemakkelijkste manier om dit te doen is door de patch boven op een versie te maken).
  2. Selecteer Team > Patch maken... in het voorgrondmenu. De wizard Patch maken worden geopend.
  3. Kies de plaats waar u de patch wilt opslaan:
    1. Opslaan naar klembord - hiermee plaatst u de patch op het klembord zodat u deze in een teksteditor zoals een e-mailprogramma kunt plakken.
    2. Opslaan in bestandssysteem - hiermee plaatst u de patch in het opgegeven bestand in het lokale bestandssysteem.
    3. Opslaan in werkgebied - hiermee plaatst u de patch in het opgegeven bestand binnen een van de bestaande workbenchprojecten.
    Voor kleine patches kan het aanvaardbaar zijn om de patch over te brengen met behulp van het klembord maar in de meeste gevallen kunt u het beste gebruikmaken van het lokale bestandssysteem.
  4. U kunt een preview bekijken van de patchselectie en deze verfijnen door de structuur voor resources in het venster met wijzigingen uit te vouwen. Alleen de elementen die zijn geselecteerd, worden in de patch opgenomen. Klik op Volgende om op te geven hoe de patch moet worden geconfigureerd.
  5. Kies een methode voor de configuratie van de patch:
    1. Verschil uitvoerindeling - Maakt de keuze mogelijk uit meerdere uitvoerindelingen. Verenigd is de indeling die wordt gebruikt door veel patchprogramma's zoals Eclipse.
    2. Patchroot - Hiermee kunt u aangeven op welk rootniveau de patch zich bevindt. U kunt kiezen uit Werkgebied, Project en Selectie.

      Met Werkgebied kunt u resources uit meerdere projecten in uw patch opnemen (de standaardoptie). Werkgebiedpatches kunnen worden toegepast op elke resource in het werkgebied; ze bevatten voldoende informatie voor de wizard Patch toepassen om te bepalen welke resources in de patch moeten worden opgenomen.

      Project-patches vinden plaats op projectniveau, wat betekent dat ze resources uit slechts één project kunnen bevatten en op hetzelfde project moeten worden toegepast.

      Selectie-patches vinden plaats op het niveau van de geselecteerde resource en moeten worden toegepast op dezelfde resource.
  6. Klik op Voltooien.
  7. Breng de patch zoals gewenst over naar het project waarin u de patch wilt aanbrengen.

Om een patch toe te passen, gaat u als volgt te werk:

  1. Selecteer de resource waarop de patch is gegenereerd. Deze resource moet dezelfde bestandsherzieningen bevatten als de line-up waarop de patch is gegenereerd.
  2. Selecteer Team > Patch toepassen... in het voorgrondmenu. De wizard Resource Patcher wordt geopend.
  3. Geef aan waar de patch kan worden gevonden:
    1. Bestand - de patch bevindt zich in een bestand op het lokale bestandssysteem. Typ het volledige pad van het bestand of gebruik de knop Bladeren... om het bestand te zoeken.
    2. Klembord - de patch staat op het klembord. Waarschuwing: Het is veiliger om een patch te gebruiken die zich in een bestand bevindt. Regeleinden kunnen niet goed worden verwerkt wanneer u gebruik maakt van het klembord en de patch op een ander platform is gegenereerd (bijvoorbeeld Linux versus Windows).
    3. Werkgebied - De patch is op een willekeurige plek in het werkgebied opgeslagen.
    Klik op Volgende om het effect van het toepassen van de patch te zien.
  4. Optionele stap: Deze stap is alleen van toepassing als uw patch zich op project- of selectieniveau bevindt. Voor werkgebiedpatches wordt de previewpagina voor patches automatisch afgebeeld. Selecteer op de pagina Patchdoelspecificatie de resource die moet dienen als root van de patch.
  5. Op de patchpreviewpagina wordt aangegeven of patch kan worden toegepast op de bestanden in het werkgebied. In het bovenste venster vindt u een lijst van wijzigingen in de patch. Als u een eindpuntitem in de boomstructuur selecteert ziet u in het onderste venster het gedeelte van het patchbestand (in de patchterminologie ook aangeduid als 'hunk') in een gemakkelijk te lezen weergave. Opmerking: Het onderste venster toont geen preview van hoe de resources in uw werkgebied eruit zouden zien na toepassing van de hunk. U ziet alleen de inhoud van het patchbestand.
    1. Een geselecteerd item geeft aan dat een patch (of hunk) met succes kan worden toegepast op een werkgebiedresource. U kunt patches of afzonderlijke hunks uitsluiten door ze te deselecteren.
    2. Een rood uitroepteken geeft aan dat er een probleem met een patch of hunk is.
      Dit betekent dat de patch niet juist gevormd is of dat de herziening van een of meer bestanden waarop de patch is gegenereerd niet overeenkomt met de herzieningen waarop de patch wordt toegepast.
      Tussen haakjes wordt de oorzaak van de fout weergegeven.

      Om de volledige patch te kunnen toepassen moet u de problemen (rode uitroeptekens) oplossen door de opties op deze wizardpagina goed af te stellen (zie hieronder bij 'Opties').

  6. Als alle problemen zijn opgelost, klikt u op Voltooien om de patch toe te passen. Het werkgebied bevat nu uitgaande wijzigingen voor elk bestand dat door de patch is gewijzigd.

Opties voor toepassing van een patch

Om patches met succes toe te passen, kunt u de volgende opties gebruiken:
  1. Ga terug naar de wizard Resource Patcher en selecteer de resource waarop de patch moet worden toegepast.
  2. Als een gemeenschappelijk voorvoegsel van de padnamen in het patchbestand niet overeenkomt met de padnamen in uw huidige werkgebied, kunt u de optie 'Voorloop-padnaamsegmenten negeren' selecteren.
  3. Gebruik de optie 'Witruimte negeren' om bij het vergelijkingsproces geen rekening te houden met verschillen tussen de gebruikte witruimten in het patchbestand en in de bestanden in uw werkgebied.
  4. Pas de 'Maximale fuzzfactor' aan (patchterminologie). Met deze factor wordt bepaald hoeveel regels van de boven- en onderkant van de context worden genegeerd bij het zoeken naar treffers. De standaardwaarde is twee.
  5. Gebruik de optie 'Patch omkeren' voor patchbestanden die al op uw werkgebied zijn toegepast. Deze optie is ook handig voor het ongedaan maken of opnieuw uitvoeren van een patch.
  6. Voor werkgebiedpatches gebruikt u 'Patch nieuw doel geven' om een ander project in uw werkgebied te selecteren waarop de patchwijzigingen moeten worden toegepast. Hiertoe selecteert u een project in het bovenster venster en klikt u op de knop Patch nieuw doel geven. Hiermee wordt een dialoogvenster gestart waarin een lijst wordt afgebeeld van alle beschikbare projecten in uw werkgebied. Selecteer een project en klik op OK. De patchwijzigingen worden op het geselecteerde project toegepast.

Verwante concepten
Programmeren in teams met CVS

Verwante taken
Resources vergelijken

Verwante onderwerpen
CVS