Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
git2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
git2
Commits
14741d62
Commit
14741d62
authored
Jun 21, 2012
by
Ben Straub
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Clone: new home for git_checkout_force.
parent
94161115
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
110 additions
and
10 deletions
+110
-10
include/git2/checkout.h
+38
-0
src/checkout.c
+66
-0
src/clone.c
+6
-10
No files found.
include/git2/checkout.h
0 → 100644
View file @
14741d62
/*
* Copyright (C) 2012 the libgit2 contributors
*
* This file is part of libgit2, distributed under the GNU GPL v2 with
* a Linking Exception. For full terms see the included COPYING file.
*/
#ifndef INCLUDE_git_checkout_h__
#define INCLUDE_git_checkout_h__
#include "common.h"
#include "types.h"
#include "indexer.h"
/**
* @file git2/checkout.h
* @brief Git checkout routines
* @defgroup git_checkout Git checkout routines
* @ingroup Git
* @{
*/
GIT_BEGIN_DECL
/**
* Updates files in the working tree to match the version in the index
* or HEAD.
*
* @param repo repository to check out (must be non-bare)
* @param origin_url repository to clone from
* @param workdir_path local directory to clone to
* @param stats pointer to structure that receives progress information (may be NULL)
* @return 0 on success, GIT_ERROR otherwise (use git_error_last for information about the error)
*/
GIT_EXTERN
(
int
)
git_checkout_force
(
git_repository
*
repo
,
git_indexer_stats
*
stats
);
/** @} */
GIT_END_DECL
#endif
src/checkout.c
0 → 100644
View file @
14741d62
/*
* Copyright (C) 2009-2012 the libgit2 contributors
*
* This file is part of libgit2, distributed under the GNU GPL v2 with
* a Linking Exception. For full terms see the included COPYING file.
*/
#include <assert.h>
#include "git2/checkout.h"
#include "git2/repository.h"
#include "git2/refs.h"
#include "git2/tree.h"
#include "git2/commit.h"
#include "common.h"
#include "refs.h"
GIT_BEGIN_DECL
static
int
get_head_tree
(
git_tree
**
out
,
git_repository
*
repo
)
{
int
retcode
=
GIT_ERROR
;
git_reference
*
head
=
NULL
;
/* Dereference HEAD all the way to an OID ref */
if
(
!
git_reference_lookup_resolved
(
&
head
,
repo
,
GIT_HEAD_FILE
,
-
1
))
{
/* The OID should be a commit */
git_object
*
commit
;
if
(
!
git_object_lookup
(
&
commit
,
repo
,
git_reference_oid
(
head
),
GIT_OBJ_COMMIT
))
{
/* Get the tree */
if
(
!
git_commit_tree
(
out
,
(
git_commit
*
)
commit
))
{
retcode
=
0
;
}
git_object_free
(
commit
);
}
git_reference_free
(
head
);
}
return
retcode
;
}
/* TODO
* -> Line endings
*/
int
git_checkout_force
(
git_repository
*
repo
,
git_indexer_stats
*
stats
)
{
int
retcode
=
GIT_ERROR
;
git_indexer_stats
dummy_stats
;
git_tree
*
tree
;
assert
(
repo
);
if
(
!
stats
)
stats
=
&
dummy_stats
;
if
(
!
get_head_tree
(
&
tree
,
repo
))
{
/* TODO */
retcode
=
0
;
}
return
retcode
;
}
GIT_END_DECL
src/clone.c
View file @
14741d62
...
...
@@ -12,12 +12,12 @@
#include "git2/revparse.h"
#include "git2/branch.h"
#include "git2/config.h"
#include "git2/checkout.h"
#include "common.h"
#include "remote.h"
#include "fileops.h"
#include "refs.h"
// TODO #include "checkout.h"
GIT_BEGIN_DECL
...
...
@@ -27,14 +27,6 @@ struct HeadInfo {
git_buf
branchname
;
};
static
int
git_checkout_force
(
git_repository
*
repo
)
{
/* TODO
* -> Line endings
*/
return
0
;
}
static
int
create_tracking_branch
(
git_repository
*
repo
,
git_oid
*
target
,
const
char
*
name
)
{
git_object
*
head_obj
=
NULL
;
...
...
@@ -214,6 +206,7 @@ int git_clone_bare(git_repository **out,
const
char
*
dest_path
,
git_indexer_stats
*
stats
)
{
assert
(
out
&&
origin_url
&&
dest_path
);
return
clone_internal
(
out
,
origin_url
,
dest_path
,
stats
,
1
);
}
...
...
@@ -225,8 +218,11 @@ int git_clone(git_repository **out,
{
int
retcode
=
GIT_ERROR
;
assert
(
out
&&
origin_url
&&
workdir_path
);
if
(
!
(
retcode
=
clone_internal
(
out
,
origin_url
,
workdir_path
,
stats
,
0
)))
{
retcode
=
git_checkout_force
(
*
out
);
git_indexer_stats
checkout_stats
;
retcode
=
git_checkout_force
(
*
out
,
&
checkout_stats
);
}
return
retcode
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment