diff --git a/logCommand/log.cpp b/logCommand/log.cpp index ab6068c..116bc31 100644 --- a/logCommand/log.cpp +++ b/logCommand/log.cpp @@ -22,7 +22,7 @@ int logMain(int argc, const char* argv[]) { commit currCommit; while (readCommit(sha1, currCommit)) { std::cout << yellow << "[commit " << currCommit.sha1 << ']' << Reset << std::endl; - std::cout << cyan << "mmessage:" << Reset << std::endl; + std::cout << cyan << "message:" << Reset << std::endl; std::cout << std::endl; std::cout << currCommit.message; diff --git a/merge/merge.cpp b/merge/merge.cpp index c3dff6b..b566069 100644 --- a/merge/merge.cpp +++ b/merge/merge.cpp @@ -7,14 +7,40 @@ #include #include -int merge(int argc, const char* argv[]); +int mergeMain(int argc, const char* argv[]); +struct MergeResult{ + std::vector parents; + std::string sha1; +}; Command MergeCommand{ - merge, + mergeMain, "Join two or more development histories together" }; -int merge(int argc, const char* argv[]){ +//数据结构定义先 + +int mergeMain(int argc, const char* argv[]){ + cmdline::parser argParser; + argParser.add("message", 'm', "merge message", true, ""); + argParser.footer(" ..."); + + argParser.parse_check(argc, argv); + // 首先获得当前分支的, + if (argParser.rest().size() == 0) { + std::cout << argParser.usage(); + return 0; + } + for (auto branch : argParser.rest()) { + std::cout << branch << std::endl; + } + + // 参数解析 + + // 判断是否需要 merge 是否可以merege先 + // 1. 判断是否有冲突 + // 2. 判断是否有未提交的修改 + std::cout << "Join two or more development histories together" << std::endl; return 1; } diff --git a/object/object.cpp b/object/object.cpp index 42d7f62..96e4358 100644 --- a/object/object.cpp +++ b/object/object.cpp @@ -36,7 +36,11 @@ bool checkSha1(const std::string &sha1) { bool readCommit(const std::string &sha1, commit& thisCommit) { if (sha1 == ""){ // not error, but also not commit - std::cerr << red << "Error: " << GIT_NAME << " your current branch 'master' does not have any commits yet" << Reset << std::endl; + // if this commit is empty ,then means there is no commit + if (thisCommit.sha1 == "") + std::cerr << red << "Error: " << GIT_NAME << " your current branch 'master' does not have any commits yet" << Reset << std::endl; + + return false; } diff --git a/test/test.py b/test/test.py index 52ae0f9..c168abc 100644 --- a/test/test.py +++ b/test/test.py @@ -294,8 +294,9 @@ def main(): parser.add_argument("exe", metavar = "executable-path") args = parser.parse_args() - app = os.path.abspath(args.exe) - + app = os.path.abspath('D:\learn\programming\s-git\s-git.exe') + + print(app) LoadTmpDir() try: ret = main()