mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-11-04 07:09:14 +00:00 
			
		
		
		
	repository: extract function to get path to a file in a work tree
The function `read_worktree_head` has the logic embedded to construct the path to `HEAD` in the work tree's git directory, which is quite useful for other callers. Extract the logic into its own function to make it reusable by others.
This commit is contained in:
		
							parent
							
								
									8242cc1a23
								
							
						
					
					
						commit
						987f565917
					
				@ -2063,6 +2063,12 @@ int git_repository_head_detached(git_repository *repo)
 | 
			
		||||
	return exists;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int get_worktree_file_path(git_buf *out, git_repository *repo, const char *worktree, const char *file)
 | 
			
		||||
{
 | 
			
		||||
	git_buf_clear(out);
 | 
			
		||||
	return git_buf_printf(out, "%s/worktrees/%s/%s", repo->commondir, worktree, file);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int read_worktree_head(git_buf *out, git_repository *repo, const char *name)
 | 
			
		||||
{
 | 
			
		||||
	git_buf path = GIT_BUF_INIT;
 | 
			
		||||
@ -2070,17 +2076,8 @@ static int read_worktree_head(git_buf *out, git_repository *repo, const char *na
 | 
			
		||||
 | 
			
		||||
	assert(out && repo && name);
 | 
			
		||||
 | 
			
		||||
	git_buf_clear(out);
 | 
			
		||||
 | 
			
		||||
	if ((err = git_buf_printf(&path, "%s/worktrees/%s/HEAD", repo->commondir, name)) < 0)
 | 
			
		||||
		goto out;
 | 
			
		||||
	if (!git_path_exists(path.ptr))
 | 
			
		||||
	{
 | 
			
		||||
		err = -1;
 | 
			
		||||
		goto out;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ((err = git_futils_readbuffer(out, path.ptr)) < 0)
 | 
			
		||||
	if ((err = get_worktree_file_path(&path, repo, name, "HEAD")) < 0 ||
 | 
			
		||||
	    (err = git_futils_readbuffer(out, path.ptr)) < 0)
 | 
			
		||||
		goto out;
 | 
			
		||||
	git_buf_rtrim(out);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user