[ 
https://issues.apache.org/jira/browse/CAMEL-26192?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-26192 started by Vignesh Nayak Manel.
---------------------------------------------------
> camel-git - checkout always creates the branch, so checking out an existing 
> branch fails, and CamelGitCommitId of the commit consumer is not the sha
> ----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26192
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26192
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-git
>            Reporter: Claus Ibsen
>            Assignee: Vignesh Nayak Manel
>            Priority: Major
>             Fix For: 4.24.0
>
>
> Found while adding the catalog body types of git (CAMEL-24961, PR #28414).
> h4. 1. checkout of an existing branch fails with RefAlreadyExistsException
> {{GitProducer.doCheckout}} (main 2a465aa4814c, line 249 and 251) always calls 
> {{setCreateBranch(true)}}, so the checkout operation can only create a new 
> branch; checking out a branch that already exists fails with 
> RefAlreadyExistsException. Checked on 4.24.0-SNAPSHOT with a temporary git 
> repository.
> Proposed: create the branch only when it does not exist (or add an option or 
> header for it).
> h4. 2. The CamelGitCommitId header of the commit consumer is the RevCommit 
> object, not the sha
> {{GitCommitConsumer}} (line 64) sets the header to {{commit.getId()}}, which 
> is the RevCommit itself. Its String form is not the sha, so feeding the 
> header to the cherrypick operation ({{GitProducer.doCherryPick}}, line 582 to 
> 583, reads it as a String) fails with RevisionSyntaxException. Checked on 
> 4.24.0-SNAPSHOT with a temporary git repository.
> Proposed: set the header to {{commit.getName()}} (the sha as text).
> h4. 3. commit and commitAll keep the old body: the new commit is not available
> {{GitProducer.doCommit}} (line 337 and 339) and {{doCommitAll}} (line 371 to 
> 374) discard the RevCommit returned by {{call()}}, so the route cannot know 
> the id of the commit it just made. Checked on 4.24.0-SNAPSHOT with a 
> temporary git repository.
> Proposed: set the new commit (or its id) as the body or as the 
> CamelGitCommitId header.
> _Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to