원격, 커밋 및 병합! 장거리 연애인가요?

2908 단어 opensource
이번 주는 저에게 너무나 바쁜 회오리바람이었습니다. 여러 수업에서 쌓인 과제가 내가 끝내기를 기다리고 있습니다. 하지만 오픈소스로 작업하는 동안 여전히 즐겁습니다. 때때로 나는 다른 사람에게 헌신하는 것이 매우 어렵다고 생각하지만 일하는 동안 여전히 나비가 있습니다. 어쩌면 나는 사랑에 빠졌어...


새로운 기능에 대한 아이디어


  • 사용자는 링크 검사기 도구를 실행할 수 있고 무시할 URL 패턴 파일인 추가 인수를 포함할 수 있기를 원합니다.
  • 이번 주의 기능은 URL 패턴 파일을 기반으로 검사에서 URL을 제외하는 기능을 추가합니다.

  • 제가 한



    문제를 제기하고 Pedro의 github에서 레포를 포크했습니다.



    분기된 리포지토리를 사용하면 원격으로 작업하고 원래 리포지토리를 방해하지 않고 원하는 대로 코드를 수정할 수 있습니다.

    readIgnoredFile 만들기




    const readIgnoreFiles = async (filePath) => {
      const urlRegex = /(((http|https):\/\/)|(www\.))([\w+\-&@`~#$%^*.=\/?:]+)/gi;
      let urlList = [];
    
      const data = await fs.promises.readFile(filePath, "utf8");
    
      let check = data.startsWith("#")
      if (check) {
        urlList = data.toLowerCase().match(urlRegex);
        urlList = Array.from(new Set(urlList));
        if (urlList.length != 0)
        {
          return urlList;
        }
        else{
          let message = "There is no valid URLs in the file."
          return message;
        }
      }
      else{
        let message = "Your ignore test file is not valid."
        return message;
      }
    
    }
    


  • 위의 코드는 파일의 유효성을 검사합니다. "#"으로 시작하는 주석이 없으면 파일이 유효하지 않습니다.
  • 또한 "IgnoredTestFile"에서 가져온 모든 URL을 반환합니다.

  • removeAnyURLsStartwith 함수 만들기




    const removeAnyURLsStartwith = (urls, urls_condition) => {
      for (let i = 0; i < urls_condition.length; i++){
        for (let j = 0; j < urls.length; j++)
        {
          if (urls[j].startsWith(urls_condition[i]))
          {
            urls.splice(j,1);
          }
        }
      }
      return urls;
    }
    


  • 이 함수는 urls_condition에 선언된 URL로 시작하는 URL을 제거합니다.
    예:
  • https://www.google.com/urls_condition에 있습니다.
  • https://www.google.com/search?...https://www.google.com/로 시작하므로 제거됩니다.

  • 내 작업을 포크된 저장소로 푸시하고 저장소 소유자에게 병합을 요청하십시오.


  • 내가 만든 브랜치에 내 작업을 푸시한 후 repo 소유자에게 피드백 및 병합을 요청해야 합니다.

  • 일하면서 힘든 점



    기여자 측에서



    다른 사람의 코드를 이해하기 어려울 때가 있습니다.


  • 코드도 제가 작성한거라 시간이 지나도 이해하는데 시간이 걸립니다. 다른 사람의 코드는 말할 것도 없습니다.

  • 저장소 소유자 측



    다른 사람이 작업한 분기를 수동으로 병합


  • 다른 사람이 작업한 지점은 때때로 충돌을 해결하는 데 몇 년이 걸립니다.

  • 결론


  • 솔직히 다른 사람의 프로젝트와 작업하는 것은 사실 재미있습니다.
  • 그들이 코딩하고 구조를 구성하는 방식에서 배울 수 있습니다. 또한 나는 다른 문제가 있을 때 사람들이 특정 문제에 접근하는 방법을 배울 수 있습니다. 다양한 각도에서 바라보는 것과 같습니다.
  • 마지막으로 통신! 의사소통! 의사소통! 모든 것이 작동합니다.
  • 좋은 웹페이지 즐겨찾기