mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-05 15:33:51 +00:00

This fixes the checkout case when a file is modified between the baseline and the target and yet missing in the working directory. The logic for that case appears to have been wrong. This also adds a useful checkout notify callback to the checkout test helpers that will count notifications and also has a debug mode to visualize what checkout thinks that it's doing.
39 lines
1.1 KiB
C
39 lines
1.1 KiB
C
#include "buffer.h"
|
|
#include "git2/object.h"
|
|
#include "git2/repository.h"
|
|
|
|
extern void strip_cr_from_buf(git_buf *buf);
|
|
extern void assert_on_branch(git_repository *repo, const char *branch);
|
|
extern void reset_index_to_treeish(git_object *treeish);
|
|
|
|
extern void check_file_contents_at_line(
|
|
const char *path, const char *expected,
|
|
const char *file, int line, const char *msg);
|
|
|
|
extern void check_file_contents_nocr_at_line(
|
|
const char *path, const char *expected,
|
|
const char *file, int line, const char *msg);
|
|
|
|
#define check_file_contents(PATH,EXP) \
|
|
check_file_contents_at_line(PATH,EXP,__FILE__,__LINE__,"String mismatch: " #EXP " != " #PATH)
|
|
|
|
#define check_file_contents_nocr(PATH,EXP) \
|
|
check_file_contents_nocr_at_line(PATH,EXP,__FILE__,__LINE__,"String mismatch: " #EXP " != " #PATH)
|
|
|
|
typedef struct {
|
|
int n_conflicts;
|
|
int n_dirty;
|
|
int n_updates;
|
|
int n_untracked;
|
|
int n_ignored;
|
|
int debug;
|
|
} checkout_counts;
|
|
|
|
extern int checkout_count_callback(
|
|
git_checkout_notify_t why,
|
|
const char *path,
|
|
const git_diff_file *baseline,
|
|
const git_diff_file *target,
|
|
const git_diff_file *workdir,
|
|
void *payload);
|