void test_refs_reflog_messages__detaching_head_default_message(void) { git_reference *ref; cl_assert_equal_i(false, git_repository_head_detached(g_repo)); cl_git_pass(git_repository_detach_head(g_repo)); cl_reflog_check_entry(g_repo, GIT_HEAD_FILE, 0, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, "checkout: moving from master to a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); cl_assert_equal_i(true, git_repository_head_detached(g_repo)); /* take the repo back to its original state */ cl_git_pass(git_reference_symbolic_create(&ref, g_repo, "HEAD", "refs/heads/master", true, "REATTACH")); cl_reflog_check_entry(g_repo, GIT_HEAD_FILE, 0, "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, "REATTACH"); cl_assert_equal_i(false, git_repository_head_detached(g_repo)); git_reference_free(ref); }
void test_network_remote_defaultbranch__detached_sharing_nonbranch_id(void) { git_oid id, id_cloned; git_reference *ref; git_buf buf = GIT_BUF_INIT; git_repository *cloned_repo; cl_git_pass(git_reference_name_to_id(&id, g_repo_a, "HEAD")); cl_git_pass(git_repository_detach_head(g_repo_a, NULL, NULL)); cl_git_pass(git_reference_remove(g_repo_a, "refs/heads/master")); cl_git_pass(git_reference_remove(g_repo_a, "refs/heads/not-good")); cl_git_pass(git_reference_create(&ref, g_repo_a, "refs/foo/bar", &id, 1, NULL, NULL)); git_reference_free(ref); cl_git_pass(git_remote_connect(g_remote, GIT_DIRECTION_FETCH)); cl_git_fail_with(GIT_ENOTFOUND, git_remote_default_branch(&buf, g_remote)); cl_git_pass(git_clone(&cloned_repo, git_repository_path(g_repo_a), "./local-detached", NULL)); cl_assert(git_repository_head_detached(cloned_repo)); cl_git_pass(git_reference_name_to_id(&id_cloned, g_repo_a, "HEAD")); cl_assert(git_oid_equal(&id, &id_cloned)); git_repository_free(cloned_repo); }
void CacheGitDirectory::updateRef() { currentGitRef_ = ""; git_repository *repo = NULL; git_reference *head = NULL; git_libgit2_init(); int r = git_repository_open(&repo, gitRepository_.c_str()); if (r != 0) { LOG(INFO) << "Cannot open git repository " << gitRepository_; goto cleanup; } if (git_repository_head_detached(repo)) { LOG(INFO) << "We are in detached state"; goto cleanup; } r = git_repository_head(&head, repo); if (r != 0) { LOG(INFO) << "Cannot get current ref head"; goto cleanup; } currentGitRef_ = git_reference_name(head); LOG(INFO) << "found ref: " << currentGitRef_; cleanup: git_repository_free(repo); git_libgit2_shutdown(); }
void test_repo_head__detach_head_Detaches_HEAD_and_make_it_point_to_the_peeled_commit(void) { cl_assert_equal_i(false, git_repository_head_detached(repo)); cl_git_pass(git_repository_detach_head(repo)); assert_head_is_correctly_detached(); }
void test_repo_head__set_head_Detaches_HEAD_when_the_reference_doesnt_point_to_a_branch(void) { cl_git_pass(git_repository_set_head(repo, "refs/tags/test")); cl_assert_equal_i(true, git_repository_head_detached(repo)); assert_head_is_correctly_detached(); }
PyObject * Repository_head_is_detached__get__(Repository *self) { if (git_repository_head_detached(self->repo) > 0) Py_RETURN_TRUE; Py_RETURN_FALSE; }
static void assert_reset_soft(bool should_be_detached) { git_oid oid; cl_git_pass(git_reference_name_to_id(&oid, repo, "HEAD")); cl_git_fail(git_oid_streq(&oid, KNOWN_COMMIT_IN_BARE_REPO)); retrieve_target_from_oid(&target, repo, KNOWN_COMMIT_IN_BARE_REPO); cl_assert(git_repository_head_detached(repo) == should_be_detached); cl_git_pass(git_reset(repo, target, GIT_RESET_SOFT)); cl_assert(git_repository_head_detached(repo) == should_be_detached); cl_git_pass(git_reference_name_to_id(&oid, repo, "HEAD")); cl_git_pass(git_oid_streq(&oid, KNOWN_COMMIT_IN_BARE_REPO)); }
void test_repo_head__head_detached(void) { git_reference *ref; cl_assert_equal_i(false, git_repository_head_detached(repo)); cl_git_pass(git_repository_detach_head(repo)); check_last_reflog_entry(g_email, "checkout: moving from master to a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); cl_assert_equal_i(true, git_repository_head_detached(repo)); /* take the repo back to it's original state */ cl_git_pass(git_reference_symbolic_create(&ref, repo, "HEAD", "refs/heads/master", true, "REATTACH")); git_reference_free(ref); check_last_reflog_entry(g_email, "REATTACH"); cl_assert_equal_i(false, git_repository_head_detached(repo)); }
void test_repo_head__head_detached(void) { git_reference *ref; git_oid oid; cl_assert(git_repository_head_detached(repo) == 0); /* detach the HEAD */ git_oid_fromstr(&oid, "c47800c7266a2be04c571c04d5a6614691ea99bd"); cl_git_pass(git_reference_create_oid(&ref, repo, "HEAD", &oid, 1)); cl_assert(git_repository_head_detached(repo) == 1); git_reference_free(ref); /* take the reop back to it's original state */ cl_git_pass(git_reference_create_symbolic(&ref, repo, "HEAD", "refs/heads/master", 1)); cl_assert(git_repository_head_detached(repo) == 0); git_reference_free(ref); }
void test_repo_head__set_head_Attaches_HEAD_to_un_unborn_branch_when_the_branch_doesnt_exist(void) { git_reference *head; cl_git_pass(git_repository_set_head(repo, "refs/heads/doesnt/exist/yet")); cl_assert_equal_i(false, git_repository_head_detached(repo)); cl_assert_equal_i(GIT_EUNBORNBRANCH, git_repository_head(&head, repo)); }
void test_reset_soft__resetting_to_a_tag_sets_the_Head_to_the_peeled_commit(void) { git_oid oid; /* b25fa35 is a tag, pointing to another tag which points to commit e90810b */ retrieve_target_from_oid(&target, repo, "b25fa35b38051e4ae45d4222e795f9df2e43f1d1"); cl_git_pass(git_reset(repo, target, GIT_RESET_SOFT)); cl_assert(git_repository_head_detached(repo) == false); cl_git_pass(git_reference_name_to_id(&oid, repo, "HEAD")); cl_git_pass(git_oid_streq(&oid, KNOWN_COMMIT_IN_BARE_REPO)); }
void test_repo_head__set_head_Attaches_HEAD_when_the_reference_points_to_a_branch(void) { git_reference *head; cl_git_pass(git_repository_set_head(repo, "refs/heads/br2")); cl_assert_equal_i(false, git_repository_head_detached(repo)); cl_git_pass(git_repository_head(&head, repo)); cl_assert_equal_s("refs/heads/br2", git_reference_name(head)); git_reference_free(head); }
void test_repo_head__head_detached(void) { git_reference *ref; git_signature *sig; cl_git_pass(git_signature_now(&sig, "Foo Bar", "*****@*****.**")); cl_assert_equal_i(false, git_repository_head_detached(repo)); cl_git_pass(git_repository_detach_head(repo, sig, "CABLE DETACHED")); check_last_reflog_entry(sig->email, "CABLE DETACHED"); cl_assert_equal_i(true, git_repository_head_detached(repo)); /* take the repo back to it's original state */ cl_git_pass(git_reference_symbolic_create(&ref, repo, "HEAD", "refs/heads/master", true, sig, "REATTACH")); git_reference_free(ref); check_last_reflog_entry(sig->email, "REATTACH"); cl_assert_equal_i(false, git_repository_head_detached(repo)); git_signature_free(sig); }
static void assert_head_is_correctly_detached(void) { git_reference *head; git_object *commit; cl_assert_equal_i(true, git_repository_head_detached(repo)); cl_git_pass(git_repository_head(&head, repo)); cl_git_pass(git_object_lookup(&commit, repo, git_reference_target(head), GIT_OBJECT_COMMIT)); git_object_free(commit); git_reference_free(head); }
void test_repo_head__unborn_head(void) { git_reference *ref; cl_git_pass(git_repository_head_detached(repo)); make_head_unborn(repo, NON_EXISTING_HEAD); cl_assert(git_repository_head_unborn(repo) == 1); /* take the repo back to it's original state */ cl_git_pass(git_reference_symbolic_create(&ref, repo, "HEAD", "refs/heads/master", 1, NULL)); cl_assert(git_repository_head_unborn(repo) == 0); git_reference_free(ref); }
void test_clone_nonetwork__can_detached_head(void) { git_object *obj; git_repository *cloned; git_reference *cloned_head; cl_git_pass(git_clone(&g_repo, cl_git_fixture_url("testrepo.git"), "./foo", &g_options)); cl_git_pass(git_revparse_single(&obj, g_repo, "master~1")); cl_git_pass(git_repository_set_head_detached(g_repo, git_object_id(obj))); cl_git_pass(git_clone(&cloned, "./foo", "./foo1", &g_options)); cl_assert(git_repository_head_detached(cloned)); cl_git_pass(git_repository_head(&cloned_head, cloned)); cl_assert_equal_oid(git_object_id(obj), git_reference_target(cloned_head)); git_object_free(obj); git_reference_free(cloned_head); git_repository_free(cloned); cl_fixture_cleanup("./foo1"); }
/** * Check if head of repository is detached * * @param repo S4 class git_repository * @return TRUE if detached else FALSE */ SEXP git2r_repository_head_detached(SEXP repo) { SEXP result; int head_detached; git_repository *repository; repository= git2r_repository_open(repo); if (!repository) git2r_error(git2r_err_invalid_repository, __func__, NULL); head_detached = git_repository_head_detached(repository); git_repository_free(repository); if (head_detached < 0) git2r_error(git2r_err_from_libgit2, __func__, giterr_last()->message); PROTECT(result = allocVector(LGLSXP, 1)); if (1 == head_detached) LOGICAL(result)[0] = 1; else LOGICAL(result)[0] = 0; UNPROTECT(1); return result; }
void CGitPropertyPage::InitWorkfileView() { if (filenames.empty()) return; CTGitPath path(filenames.front().c_str()); CString ProjectTopDir; if(!path.HasAdminDir(&ProjectTopDir)) return; CAutoRepository repository(CUnicodeUtils::GetUTF8(ProjectTopDir)); if (!repository) return; CString username; CString useremail; CString autocrlf; CString safecrlf; CAutoConfig config(repository); if (config) { config.GetString(L"user.name", username); config.GetString(L"user.email", useremail); config.GetString(L"core.autocrlf", autocrlf); config.GetString(L"core.safecrlf", safecrlf); } CString branch; CString remotebranch; if (!git_repository_head_detached(repository)) { CAutoReference head; if (git_repository_head_unborn(repository)) { git_reference_lookup(head.GetPointer(), repository, "HEAD"); branch = CUnicodeUtils::GetUnicode(git_reference_symbolic_target(head)); if (branch.Find(_T("refs/heads/")) == 0) branch = branch.Mid(11); // 11 = len("refs/heads/") } else if (!git_repository_head(head.GetPointer(), repository)) { const char * branchChar = git_reference_shorthand(head); branch = CUnicodeUtils::GetUnicode(branchChar); const char * branchFullChar = git_reference_name(head); CAutoBuf upstreambranchname; if (!git_branch_upstream_name(upstreambranchname, repository, branchFullChar)) { remotebranch = CUnicodeUtils::GetUnicode(CStringA(upstreambranchname->ptr, (int)upstreambranchname->size)); remotebranch = remotebranch.Mid(13); // 13=len("refs/remotes/") } } } else branch = _T("detached HEAD"); if (autocrlf.Trim().IsEmpty()) autocrlf = _T("false"); if (safecrlf.Trim().IsEmpty()) safecrlf = _T("false"); SetDlgItemText(m_hwnd,IDC_CONFIG_USERNAME,username.Trim()); SetDlgItemText(m_hwnd,IDC_CONFIG_USEREMAIL,useremail.Trim()); SetDlgItemText(m_hwnd,IDC_CONFIG_AUTOCRLF,autocrlf.Trim()); SetDlgItemText(m_hwnd,IDC_CONFIG_SAFECRLF,safecrlf.Trim()); SetDlgItemText(m_hwnd,IDC_SHELL_CURRENT_BRANCH,branch.Trim()); SetDlgItemText(m_hwnd,IDC_SHELL_REMOTE_BRANCH, remotebranch); git_oid oid; CAutoCommit HEADcommit; if (!git_reference_name_to_id(&oid, repository, "HEAD") && !git_commit_lookup(HEADcommit.GetPointer(), repository, &oid) && HEADcommit) DisplayCommit(HEADcommit, IDC_HEAD_HASH, IDC_HEAD_SUBJECT, IDC_HEAD_AUTHOR, IDC_HEAD_DATE); { int stripLength = ProjectTopDir.GetLength(); if (ProjectTopDir[stripLength - 1] != _T('\\')) ++stripLength; bool allAreFiles = true; for (auto it = filenames.cbegin(); it < filenames.cend(); ++it) { if (PathIsDirectory(it->c_str())) { allAreFiles = false; break; } } if (allAreFiles) { size_t assumevalid = 0; size_t skipworktree = 0; size_t executable = 0; size_t symlink = 0; do { CAutoIndex index; if (git_repository_index(index.GetPointer(), repository)) break; for (auto it = filenames.cbegin(); it < filenames.cend(); ++it) { CTGitPath file; file.SetFromWin(CString(it->c_str()).Mid(stripLength)); CStringA pathA = CUnicodeUtils::GetMulti(file.GetGitPathString(), CP_UTF8); size_t idx; if (!git_index_find(&idx, index, pathA)) { const git_index_entry *e = git_index_get_byindex(index, idx); if (e->flags & GIT_IDXENTRY_VALID) ++assumevalid; if (e->flags_extended & GIT_IDXENTRY_SKIP_WORKTREE) ++skipworktree; if (e->mode & 0111) ++executable; if ((e->mode & GIT_FILEMODE_LINK) == GIT_FILEMODE_LINK) ++symlink; } else { // do not show checkboxes for unversioned files ShowWindow(GetDlgItem(m_hwnd, IDC_ASSUMEVALID), SW_HIDE); ShowWindow(GetDlgItem(m_hwnd, IDC_SKIPWORKTREE), SW_HIDE); ShowWindow(GetDlgItem(m_hwnd, IDC_EXECUTABLE), SW_HIDE); ShowWindow(GetDlgItem(m_hwnd, IDC_SYMLINK), SW_HIDE); break; } } } while (0); if (assumevalid != 0 && assumevalid != filenames.size()) { SendMessage(GetDlgItem(m_hwnd, IDC_ASSUMEVALID), BM_SETSTYLE, (DWORD)GetWindowLong(GetDlgItem(m_hwnd, IDC_ASSUMEVALID), GWL_STYLE) & ~BS_AUTOCHECKBOX | BS_AUTO3STATE, 0); SendMessage(GetDlgItem(m_hwnd, IDC_ASSUMEVALID), BM_SETCHECK, BST_INDETERMINATE, 0); } else SendMessage(GetDlgItem(m_hwnd, IDC_ASSUMEVALID), BM_SETCHECK, (assumevalid == 0) ? BST_UNCHECKED : BST_CHECKED, 0); if (skipworktree != 0 && skipworktree != filenames.size()) { SendMessage(GetDlgItem(m_hwnd, IDC_SKIPWORKTREE), BM_SETSTYLE, (DWORD)GetWindowLong(GetDlgItem(m_hwnd, IDC_SKIPWORKTREE), GWL_STYLE) & ~BS_AUTOCHECKBOX | BS_AUTO3STATE, 0); SendMessage(GetDlgItem(m_hwnd, IDC_SKIPWORKTREE), BM_SETCHECK, BST_INDETERMINATE, 0); } else SendMessage(GetDlgItem(m_hwnd, IDC_SKIPWORKTREE), BM_SETCHECK, (skipworktree == 0) ? BST_UNCHECKED : BST_CHECKED, 0); if (executable != 0 && executable != filenames.size()) { SendMessage(GetDlgItem(m_hwnd, IDC_EXECUTABLE), BM_SETSTYLE, (DWORD)GetWindowLong(GetDlgItem(m_hwnd, IDC_EXECUTABLE), GWL_STYLE) & ~BS_AUTOCHECKBOX | BS_AUTO3STATE, 0); SendMessage(GetDlgItem(m_hwnd, IDC_EXECUTABLE), BM_SETCHECK, BST_INDETERMINATE, 0); EnableWindow(GetDlgItem(m_hwnd, IDC_SYMLINK), TRUE); } else { SendMessage(GetDlgItem(m_hwnd, IDC_EXECUTABLE), BM_SETCHECK, (executable == 0) ? BST_UNCHECKED : BST_CHECKED, 0); EnableWindow(GetDlgItem(m_hwnd, IDC_SYMLINK), (executable == 0) ? TRUE : FALSE); } if (symlink != 0 && symlink != filenames.size()) { SendMessage(GetDlgItem(m_hwnd, IDC_SYMLINK), BM_SETSTYLE, (DWORD)GetWindowLong(GetDlgItem(m_hwnd, IDC_SYMLINK), GWL_STYLE) & ~BS_AUTOCHECKBOX | BS_AUTO3STATE, 0); SendMessage(GetDlgItem(m_hwnd, IDC_SYMLINK), BM_SETCHECK, BST_INDETERMINATE, 0); EnableWindow(GetDlgItem(m_hwnd, IDC_EXECUTABLE), TRUE); } else { SendMessage(GetDlgItem(m_hwnd, IDC_SYMLINK), BM_SETCHECK, (symlink == 0) ? BST_UNCHECKED : BST_CHECKED, 0); EnableWindow(GetDlgItem(m_hwnd, IDC_EXECUTABLE), (symlink == 0) ? TRUE : FALSE); } } else { ShowWindow(GetDlgItem(m_hwnd, IDC_ASSUMEVALID), SW_HIDE); ShowWindow(GetDlgItem(m_hwnd, IDC_SKIPWORKTREE), SW_HIDE); ShowWindow(GetDlgItem(m_hwnd, IDC_EXECUTABLE), SW_HIDE); ShowWindow(GetDlgItem(m_hwnd, IDC_SYMLINK), SW_HIDE); } } if (filenames.size() == 1 && !PathIsDirectory(filenames[0].c_str())) { SetDlgItemText(m_hwnd, IDC_LAST_SUBJECT, CString(MAKEINTRESOURCE(IDS_LOADING))); _beginthread(LogThreadEntry, 0, this); } else ShowWindow(GetDlgItem(m_hwnd, IDC_STATIC_LASTMODIFIED), SW_HIDE); }
void test_repo_head__can_tell_if_an_unborn_head_is_detached(void) { make_head_unborn(repo, NON_EXISTING_HEAD); cl_assert_equal_i(false, git_repository_head_detached(repo)); }
BOOL CPullFetchDlg::OnInitDialog() { CHorizontalResizableStandAloneDialog::OnInitDialog(); CAppUtils::MarkWindowAsUnpinnable(m_hWnd); AddAnchor(IDC_REMOTE_COMBO, TOP_LEFT, TOP_RIGHT); AddAnchor(IDC_OTHER, TOP_LEFT,TOP_RIGHT); AddAnchor(IDC_REMOTE_BRANCH, TOP_LEFT,TOP_RIGHT); AddAnchor(IDC_BUTTON_BROWSE_REF,TOP_RIGHT); AddAnchor(IDOK,BOTTOM_RIGHT); AddAnchor(IDCANCEL,BOTTOM_RIGHT); AddAnchor(IDC_GROUPT_REMOTE,TOP_LEFT,TOP_RIGHT); AddAnchor(IDC_GROUP_OPTION,TOP_LEFT,TOP_RIGHT); AddAnchor(IDC_PUTTYKEY_AUTOLOAD,BOTTOM_LEFT); AddAnchor(IDC_CHECK_PRUNE,BOTTOM_LEFT); AddAnchor(IDC_CHECK_REBASE,BOTTOM_LEFT); AddAnchor(IDC_REMOTE_MANAGE,BOTTOM_LEFT); AddAnchor(IDHELP, BOTTOM_RIGHT); AdjustControlSize(IDC_REMOTE_RD); AdjustControlSize(IDC_OTHER_RD); AdjustControlSize(IDC_CHECK_SQUASH); AdjustControlSize(IDC_CHECK_NOCOMMIT); AdjustControlSize(IDC_CHECK_DEPTH); AdjustControlSize(IDC_CHECK_NOFF); AdjustControlSize(IDC_CHECK_FFONLY); AdjustControlSize(IDC_CHECK_FETCHTAGS); AdjustControlSize(IDC_PUTTYKEY_AUTOLOAD); AdjustControlSize(IDC_CHECK_REBASE); AdjustControlSize(IDC_CHECK_PRUNE); CString WorkingDir=g_Git.m_CurrentDir; WorkingDir.Replace(_T(':'),_T('_')); m_RemoteReg = CRegString(CString(_T("Software\\TortoiseGit\\History\\PullRemote\\")+WorkingDir)); CString regkey; regkey.Format(_T("Software\\TortoiseGit\\TortoiseProc\\PullFetch\\%s_%d\\rebase"), (LPCTSTR)WorkingDir, m_IsPull); m_regRebase=CRegDWORD(regkey,false); regkey.Format(_T("Software\\TortoiseGit\\TortoiseProc\\PullFetch\\%s_%d\\ffonly"), (LPCTSTR)WorkingDir, m_IsPull); m_regFFonly = CRegDWORD(regkey, false); regkey.Format(_T("Software\\TortoiseGit\\TortoiseProc\\PullFetch\\%s_%d\\autoload"), (LPCTSTR)WorkingDir, m_IsPull); m_regAutoLoadPutty = CRegDWORD(regkey,this->m_bAutoLoad); m_bAutoLoad = m_regAutoLoadPutty; if(!CAppUtils::IsSSHPutty()) m_bAutoLoad = false; m_bRebase = m_regRebase; CAutoRepository repo(g_Git.GetGitRepository()); if (!repo) MessageBox(CGit::GetLibGit2LastErr(_T("Could not open repository.")), _T("TortoiseGit"), MB_OK | MB_ICONERROR); // Check config branch.<name>.rebase and pull.reabse do { if (!m_IsPull) break; if (!repo) break; if (git_repository_head_detached(repo) == 1) break; CAutoConfig config(true); if (git_repository_config(config.GetPointer(), repo)) break; BOOL rebase = FALSE; // branch.<name>.rebase overrides pull.rebase if (config.GetBOOL(_T("branch.") + g_Git.GetCurrentBranch() + _T(".rebase"), rebase) == GIT_ENOTFOUND) { if (config.GetBOOL(_T("pull.rebase"), rebase) == GIT_ENOTFOUND) break; else if (CRegDWORD(L"Software\\TortoiseGit\\PullRebaseBehaviorLike1816", FALSE) == FALSE) { CString value; config.GetString(_T("pull.rebase"), value); if (value == _T("preserve")) { rebase = TRUE; m_bRebasePreserveMerges = true; } } } else if (CRegDWORD(L"Software\\TortoiseGit\\PullRebaseBehaviorLike1816", FALSE) == FALSE) { CString value; config.GetString(_T("branch.") + g_Git.GetCurrentBranch() + _T(".rebase"), value); if (value == _T("preserve")) { rebase = TRUE; m_bRebasePreserveMerges = true; } } if (!rebase) break; // Since rebase = true in config, means that "git.exe pull" will ALWAYS rebase without "--rebase". // So, lock it, then let Fetch Rebase do the rest things. m_bRebase = TRUE; m_bRebaseActivatedInConfigForPull = (CRegDWORD(L"Software\\TortoiseGit\\PullRebaseBehaviorLike1816", FALSE) == FALSE); } while (0); this->UpdateData(FALSE); this->AddOthersToAnchor(); this->GetDlgItem(IDC_PUTTYKEY_AUTOLOAD)->EnableWindow(m_bAutoLoadEnable); CheckRadioButton(IDC_REMOTE_RD,IDC_OTHER_RD,IDC_REMOTE_RD); m_Remote.EnableWindow(TRUE); m_Remote.SetMaxHistoryItems(0x7FFFFFFF); m_Other.EnableWindow(FALSE); if(!m_IsPull) { m_RemoteBranch.EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_BROWSE_REF)->EnableWindow(FALSE); } if(m_IsPull) { m_bFFonly = m_regFFonly; UpdateData(FALSE); OnBnClickedCheckFfonly(); } else { this->GetDlgItem(IDC_GROUP_OPTION)->EnableWindow(FALSE); this->GetDlgItem(IDC_CHECK_SQUASH)->EnableWindow(FALSE); this->GetDlgItem(IDC_CHECK_NOFF)->EnableWindow(FALSE); this->GetDlgItem(IDC_CHECK_FFONLY)->EnableWindow(FALSE); this->GetDlgItem(IDC_CHECK_NOCOMMIT)->EnableWindow(FALSE); } if (GitAdminDir::IsBareRepo(g_Git.m_CurrentDir)) this->GetDlgItem(IDC_CHECK_REBASE)->EnableWindow(FALSE); if (repo && git_repository_is_shallow(repo)) { m_bDepth = TRUE; UpdateData(FALSE); } else { GetDlgItem(IDC_CHECK_DEPTH)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT_DEPTH)->ShowWindow(SW_HIDE); } OnBnClickedCheckDepth(); m_Other.SetCaseSensitive(TRUE); m_Other.SetURLHistory(TRUE); m_Other.LoadHistory(_T("Software\\TortoiseGit\\History\\PullURLS"), _T("url")); m_RemoteBranch.LoadHistory(_T("Software\\TortoiseGit\\History\\PullRemoteBranch"), _T("br")); m_RemoteBranch.SetCurSel(0); CString sWindowTitle; if(m_IsPull) sWindowTitle.LoadString(IDS_PROGRS_TITLE_PULL); else sWindowTitle.LoadString(IDS_PROGRS_TITLE_FETCH); CAppUtils::SetWindowTitle(m_hWnd, g_Git.m_CurrentDir, sWindowTitle); Refresh(); EnableSaveRestore(_T("PullFetchDlg")); this->m_RemoteManage.SetURL(CString()); return TRUE; }