MAC OS上的Visual Studio代码和GIT

时间:2018-08-24 21:37:53

标签: git macos visual-studio-code

在Mac OS的Visual Studio代码中未检测到Git。 我只看到“没有活跃的管理系统供应商”,请帮忙。

输入bash:git --version,然后查看“ git version 2.18.0”,添加到$ PATH =“ / usr / local / git / bin”。

我在Windows 8中使用Git的VSCode一切正常且运行良好。我注意到区别在于,在“用户设置”中,扩展名中包含GIT,但在MACOS上则没有。

1 个答案:

答案 0 :(得分:0)

确保从git --version工作的会话中启动vscode,这意味着您的$ PATH确实引用了Git。

如果没有,请检查vscode设置“ #include <set> #include <cassert> #include <vector> #include <utility> #include <chrono> #include <cstdio> using namespace std; unsigned hibit(size_t n) { unsigned long l; auto r = _BitScanReverse(&l, n); assert(r); return l; } int const* pick_root(int const* begin, int const* end) { assert(begin != end); size_t count = end - begin; unsigned tree_order = hibit(count); // tree height minus 1 size_t max_tail_sz = 1 << tree_order; // max number of nodes on last tree lvl size_t filled_sz = max_tail_sz - 1; // number of nodes on all but last tree lvl size_t tail_sz = count - filled_sz; // number of nodes on last lvl return (tail_sz >= max_tail_sz/2) ? // left half of tree will be completely filled? begin + max_tail_sz - 1 // pick (2^tree_order)'s element from left : end - max_tail_sz/2; // pick (2^(tree_order - 1))'s element from right } vector<int> repack(vector<int> const& v) { vector<int> r; r.reserve(v.size()); if (!v.empty()) { unsigned tree_order = hibit(v.size()); // tree height minus 1 vector<pair<int const*, int const*>> ranges(1, make_pair(&v[0], &v[0] + v.size())); for(size_t i = 0; i <= tree_order; ++i) { vector<pair<int const*, int const*>> ranges2; ranges2.reserve(ranges.size()*2); for(auto const& range: ranges) { auto root = pick_root(range.first, range.second); r.push_back(*root); if (root != range.first) { ranges2.push_back(make_pair(range.first, root)); if (root + 1 != range.second) ranges2.push_back(make_pair(root + 1, range.second)); } } ranges.swap(ranges2); } assert(ranges.empty()); } return r; } set<int> populate_simple(std::vector<int> const& vec) { set<int> r; for(auto v: vec) r.insert(v); return r; } set<int> populate_hinted(std::vector<int> const& vec) { set<int> r; for(auto v: vec) r.insert(r.end(), v); return r; } set<int> populate_optimized(std::vector<int> const& vec) { set<int> r; if (vec.empty()) return r; int const* p = &vec[0]; int const* pend = &vec[0] + vec.size(); r.insert(*p++); // take care of root if (p == pend) return r; for(size_t count = 1; ; count *= 2) // max number of pairs on each tree lvl { auto pos = r.begin(); for(size_t i = 1; ; ++i) { r.insert(pos, *p++); if (p == pend) return r; //++pos; // MS implementation supports insertion after hint pos = r.insert(pos, *p++); if (p == pend) return r; // pos points to rightmost leaf of left subtree of "local" tree ++pos; // pos points to root of "local" tree (or end()) if (i == count) break; ++pos; // pos points to leftmost leaf of right subtree of "local" tree } } } struct stopwatch { chrono::high_resolution_clock::time_point start_; stopwatch() : start_(std::chrono::high_resolution_clock::now()) {} auto click() { auto finish = std::chrono::high_resolution_clock::now(); auto mks = std::chrono::duration_cast<std::chrono::microseconds>(finish - start_); return mks.count(); } }; int main() { size_t N = 100000; vector<int> v(N, 0); for(unsigned i = 0; i < N; ++i) v[i] = i; // sorted array auto rv = repack(v); { stopwatch w; auto s = populate_simple(v); printf("simple : %I64d mks\n", w.click()); } { stopwatch w; auto s = populate_hinted(v); printf("hinted : %I64d mks\n", w.click()); } { stopwatch w; auto s = populate_optimized(rv); printf("optimized: %I64d mks\n", w.click()); } return 0; } ”:您可以在那里直接引用可执行文件simple : 14904 mks hinted : 7885 mks optimized: 6809 mks simple : 15288 mks hinted : 7415 mks optimized: 6947 mks git.path)。